From d33bdb32506d96926c799033c46f1d54a9f7b90d Mon Sep 17 00:00:00 2001 From: Lucas Cordeiro Date: Wed, 20 Jul 2022 10:57:08 -0300 Subject: [PATCH] Add test with shouldUseIOFetching flag --- react/__tests__/AddressRules.test.tsx | 67 ++++++++++++++++----------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/react/__tests__/AddressRules.test.tsx b/react/__tests__/AddressRules.test.tsx index 03099fc2..8ab9dcd2 100644 --- a/react/__tests__/AddressRules.test.tsx +++ b/react/__tests__/AddressRules.test.tsx @@ -9,6 +9,22 @@ import braRules from '../country/BRA' import { getField } from '../selectors/fields' describe('AddressRules', () => { + let loadedRules: PostalCodeRules | null = null + + const LoadedRulesComponent = () => { + loadedRules = useAddressRules() + + if (loadedRules == null) { + return null + } + + return loaded rules + } + + beforeEach(() => { + loadedRules = null + }) + it('should load the defined rules', async () => { let rules: PostalCodeRules | null = null @@ -37,30 +53,18 @@ describe('AddressRules', () => { .spyOn(global.console, 'warn') .mockImplementation(() => {}) - let rules: PostalCodeRules | null = null - - const MyComponent = () => { - rules = useAddressRules() - - if (rules == null) { - return null - } - - return loaded rules - } - render( import(`../country/${country}`)} > - + ) await screen.findByText('loaded rules') - expect(rules).toEqual(defaultRules) + expect(loadedRules).toEqual(defaultRules) expect(warnSpy).toHaveBeenCalledWith( "Couldn't load rules for country XXX, using default rules instead." ) @@ -71,18 +75,6 @@ describe('AddressRules', () => { .spyOn(global.console, 'warn') .mockImplementation(() => {}) - let rules: PostalCodeRules | null = null - - const MyComponent = () => { - rules = useAddressRules() - - if (rules == null) { - return null - } - - return loaded rules - } - render( { Promise.reject(new Error(`Cannot find module '${country}'`)) } > - + ) await screen.findByText('loaded rules') - expect(rules).toEqual(defaultRules) + expect(loadedRules).toEqual(defaultRules) expect(warnSpy).toHaveBeenCalledWith( "Couldn't load rules for country BRA, using default rules instead." ) }) + it('should use default rules with IO fetching when country does not exist', async () => { + const warnSpy = jest + .spyOn(global.console, 'warn') + .mockImplementation(() => {}) + + render( + + + + ) + + await screen.findByText('loaded rules') + + expect(loadedRules).toEqual(defaultRules) + expect(warnSpy).toHaveBeenCalledWith( + "Couldn't load rules for country XXX, using default rules instead." + ) + }) + it('should merge geolocation field rules with default field rules', async () => { let rules: PostalCodeRules | null = null