diff --git a/__mocks__/gatsby-plugin-firebase.js b/__mocks__/gatsby-plugin-firebase.js index 8678a132..fa530f79 100644 --- a/__mocks__/gatsby-plugin-firebase.js +++ b/__mocks__/gatsby-plugin-firebase.js @@ -115,11 +115,19 @@ class Database { initializeData() { const resumes = {}; + const demoStateResume = Database.readFile('../src/data/demoState.json'); + let date = new Date('December 15, 2020 11:20:25'); + demoStateResume.updatedAt = date.valueOf(); + date.setMonth(date.getMonth() - 2); + demoStateResume.createdAt = date.valueOf(); resumes[this.demoStateResumeId] = demoStateResume; + const initialStateResume = Database.readFile( '../src/data/initialState.json', ); + initialStateResume.updatedAt = date.valueOf(); + initialStateResume.createdAt = date.valueOf(); resumes[this.initialStateResumeId] = initialStateResume; for (var key in resumes) { @@ -128,11 +136,6 @@ class Database { resume.id = key; resume.name = `Test Resume ${key}`; resume.user = this.anonymousUser.uid; - - let date = new Date('December 15, 2020 11:20:25'); - resume.updatedAt = date.valueOf(); - date.setMonth(date.getMonth() - 2); - resume.createdAt = date.valueOf(); } this.#data[this.resumesPath] = resumes; diff --git a/src/pages/app/__tests__/builder.test.js b/src/pages/app/__tests__/builder.test.js index 45ceaec6..22ccbf9e 100644 --- a/src/pages/app/__tests__/builder.test.js +++ b/src/pages/app/__tests__/builder.test.js @@ -25,7 +25,7 @@ beforeEach(() => { afterEach(cleanup); -describe('builder', () => { +describe('Builder', () => { const resumesPath = FirebaseStub.database().resumesPath; let resumeId = null; let resume = null; @@ -107,4 +107,34 @@ describe('builder', () => { ); }); }); + + describe('settings', () => { + it('allow to change the language', async () => { + const languageSelectElement = screen.getByLabelText('Language'); + console.log(languageSelectElement.value); + fireEvent.change(languageSelectElement, { target: { value: 'it' } }); + console.log(languageSelectElement.value); + expect(languageSelectElement).toHaveValue('it'); + + expect( + screen.getByLabelText(new RegExp('date of birth', 'i')), + ).toBeInTheDocument(); + expect( + screen.getByLabelText(new RegExp('data di nascita', 'i')), + ).toBeInTheDocument(); + + await waitFor(() => expect(mockUpdateFunction).toHaveBeenCalledTimes(1), { + timeout: DebounceWaitTime, + }); + const mockUpdateFunctionCallArgument = + mockUpdateFunction.mock.calls[0][0]; + expect(mockUpdateFunctionCallArgument.id).toBe(resume.id); + expect(mockUpdateFunctionCallArgument.profile.address.line1).toBe( + newInputValue, + ); + expect(mockUpdateFunctionCallArgument.updatedAt).toBeGreaterThanOrEqual( + now, + ); + }); + }); });