diff options
Diffstat (limited to 'spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js')
-rw-r--r-- | spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js | 150 |
1 files changed, 69 insertions, 81 deletions
diff --git a/spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js b/spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js index 852106db44e..7b604724977 100644 --- a/spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js +++ b/spec/frontend/lib/apollo/suppress_network_errors_during_navigation_link_spec.js @@ -47,107 +47,95 @@ describe('getSuppressNetworkErrorsDuringNavigationLink', () => { subscription = link.request(mockOperation).subscribe(observer); }; - describe('when disabled', () => { - it('returns null', () => { - expect(getSuppressNetworkErrorsDuringNavigationLink()).toBe(null); - }); + it('returns an ApolloLink', () => { + expect(getSuppressNetworkErrorsDuringNavigationLink()).toEqual(expect.any(ApolloLink)); }); - describe('when enabled', () => { - beforeEach(() => { - window.gon = { features: { suppressApolloErrorsDuringNavigation: true } }; - }); - - it('returns an ApolloLink', () => { - expect(getSuppressNetworkErrorsDuringNavigationLink()).toEqual(expect.any(ApolloLink)); - }); - - describe('suppression case', () => { - describe('when navigating away', () => { - beforeEach(() => { - isNavigatingAway.mockReturnValue(true); - }); - - describe('given a network error', () => { - it('does not forward the error', async () => { - const spy = jest.fn(); + describe('suppression case', () => { + describe('when navigating away', () => { + beforeEach(() => { + isNavigatingAway.mockReturnValue(true); + }); - createSubscription(makeMockNetworkErrorLink(), { - next: spy, - error: spy, - complete: spy, - }); + describe('given a network error', () => { + it('does not forward the error', async () => { + const spy = jest.fn(); - // It's hard to test for something _not_ happening. The best we can - // do is wait a bit to make sure nothing happens. - await waitForPromises(); - expect(spy).not.toHaveBeenCalled(); + createSubscription(makeMockNetworkErrorLink(), { + next: spy, + error: spy, + complete: spy, }); + + // It's hard to test for something _not_ happening. The best we can + // do is wait a bit to make sure nothing happens. + await waitForPromises(); + expect(spy).not.toHaveBeenCalled(); }); }); }); + }); - describe('non-suppression cases', () => { - describe('when not navigating away', () => { - beforeEach(() => { - isNavigatingAway.mockReturnValue(false); - }); + describe('non-suppression cases', () => { + describe('when not navigating away', () => { + beforeEach(() => { + isNavigatingAway.mockReturnValue(false); + }); - it('forwards successful requests', (done) => { - createSubscription(makeMockSuccessLink(), { - next({ data }) { - expect(data).toEqual({ foo: { id: 1 } }); - }, - error: () => done.fail('Should not happen'), - complete: () => done(), - }); + it('forwards successful requests', (done) => { + createSubscription(makeMockSuccessLink(), { + next({ data }) { + expect(data).toEqual({ foo: { id: 1 } }); + }, + error: () => done.fail('Should not happen'), + complete: () => done(), }); + }); - it('forwards GraphQL errors', (done) => { - createSubscription(makeMockGraphQLErrorLink(), { - next({ errors }) { - expect(errors).toEqual([{ message: 'foo' }]); - }, - error: () => done.fail('Should not happen'), - complete: () => done(), - }); + it('forwards GraphQL errors', (done) => { + createSubscription(makeMockGraphQLErrorLink(), { + next({ errors }) { + expect(errors).toEqual([{ message: 'foo' }]); + }, + error: () => done.fail('Should not happen'), + complete: () => done(), }); + }); - it('forwards network errors', (done) => { - createSubscription(makeMockNetworkErrorLink(), { - next: () => done.fail('Should not happen'), - error: (error) => { - expect(error.message).toBe('NetworkError'); - done(); - }, - complete: () => done.fail('Should not happen'), - }); + it('forwards network errors', (done) => { + createSubscription(makeMockNetworkErrorLink(), { + next: () => done.fail('Should not happen'), + error: (error) => { + expect(error.message).toBe('NetworkError'); + done(); + }, + complete: () => done.fail('Should not happen'), }); }); + }); - describe('when navigating away', () => { - beforeEach(() => { - isNavigatingAway.mockReturnValue(true); - }); + describe('when navigating away', () => { + beforeEach(() => { + isNavigatingAway.mockReturnValue(true); + }); - it('forwards successful requests', (done) => { - createSubscription(makeMockSuccessLink(), { - next({ data }) { - expect(data).toEqual({ foo: { id: 1 } }); - }, - error: () => done.fail('Should not happen'), - complete: () => done(), - }); + it('forwards successful requests', (done) => { + createSubscription(makeMockSuccessLink(), { + next({ data }) { + expect(data).toEqual({ foo: { id: 1 } }); + }, + error: () => done.fail('Should not happen'), + complete: () => done(), }); + }); - it('forwards GraphQL errors', (done) => { - createSubscription(makeMockGraphQLErrorLink(), { - next({ errors }) { - expect(errors).toEqual([{ message: 'foo' }]); - }, - error: () => done.fail('Should not happen'), - complete: () => done(), - }); + it('forwards GraphQL errors', (done) => { + createSubscription(makeMockGraphQLErrorLink(), { + next({ errors }) { + expect(errors).toEqual([{ message: 'foo' }]); + }, + error: () => done.fail('Should not happen'), + complete: () => done(), }); }); }); |