@@ -1893,6 +1893,39 @@ var _ = Describe("SqlDB", func() {
18931893 Eventually (logger , 2 ).Should (gbytes .Say (`failed-to-prune-.*-routes","log_level":2,"data":{"error":"sql: database is closed"}` ))
18941894 })
18951895 })
1896+
1897+ Context ("when db throws a temporary error" , func () {
1898+ var (
1899+ fakeClient * fakes.FakeClient
1900+ count int32
1901+ )
1902+
1903+ BeforeEach (func () {
1904+ fakeClient = & fakes.FakeClient {}
1905+ sqlDB .Client = fakeClient
1906+ fakeClient .FindReturns (nil )
1907+ fakeClient .DeleteStub = func (value interface {}, where ... interface {}) (int64 , error ) {
1908+ time .Sleep (500 * time .Millisecond )
1909+ c := atomic .AddInt32 (& count , 1 )
1910+ if c > 5 && c < 10 {
1911+ return 0 , errors .New ("temp-error" )
1912+ } else if c >= 10 {
1913+ return 111 , nil
1914+ } else {
1915+ return 1 , nil
1916+ }
1917+ }
1918+ })
1919+
1920+ It ("eventually resolves the issue" , func () {
1921+ Eventually (logger , 2 ).Should (gbytes .Say (`"prune.successfully-finished-pruning-tcp-routes","log_level":1,"data":{"rowsAffected":1}` ))
1922+ Eventually (logger , 2 ).Should (gbytes .Say (`"prune.successfully-finished-pruning-http-routes","log_level":1,"data":{"rowsAffected":1}` ))
1923+ Eventually (logger , 2 ).Should (gbytes .Say (`failed-to-prune-tcp-routes","log_level":2,"data":{"error":"temp-error"}` ))
1924+ Eventually (logger , 2 ).Should (gbytes .Say (`failed-to-prune-http-routes","log_level":2,"data":{"error":"temp-error"}` ))
1925+ Eventually (logger , 2 ).Should (gbytes .Say (`"prune.successfully-finished-pruning-tcp-routes","log_level":1,"data":{"rowsAffected":111}` ))
1926+ Eventually (logger , 2 ).Should (gbytes .Say (`"prune.successfully-finished-pruning-http-routes","log_level":1,"data":{"rowsAffected":111}` ))
1927+ })
1928+ })
18961929 })
18971930 }
18981931
0 commit comments