From 10a1ea4cce587d02be9150e2517fd7eb45fe3059 Mon Sep 17 00:00:00 2001 From: robinvandermolen Date: Tue, 8 Oct 2024 15:29:31 +0200 Subject: [PATCH] :white_check_mark: [open-formulieren/open-forms#4600] Added test for sdk onLanguageChange --- src/sdk.spec.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/sdk.spec.js b/src/sdk.spec.js index 1d7a6010c..e43b9ce4a 100644 --- a/src/sdk.spec.js +++ b/src/sdk.spec.js @@ -115,6 +115,34 @@ describe('OpenForm', () => { expect(within(formRoot).getAllByText('English version').length).toBeGreaterThan(0); }); + it('should call the onLanguageChange callback on language change', async () => { + mswServer.use(...apiMocks); + const formRoot = document.createElement('div'); + const target = document.createElement('div'); + const onLanguageChangeMock = jest.fn(); + + const form = new OpenForm(formRoot, { + baseUrl: BASE_URL, + basePath: '', + formId: '81a22589-abce-4147-a2a3-62e9a56685aa', + languageSelectorTarget: target, + lang: 'nl', + onLanguageChange: onLanguageChangeMock, + }); + + await act(async () => await form.init()); + + // wait for the loader to be removed when all network requests have completed + await waitForElementToBeRemoved(() => within(formRoot).getByRole('status')); + expect(target).not.toBeEmptyDOMElement(); + + await act(async () => { + await form.onLanguageChangeDone('en'); + }); + + expect(onLanguageChangeMock).toBeCalledWith('en'); + }); + it('should correctly set the formUrl', () => { mswServer.use(...apiMocks); const formRoot = document.createElement('div');