From 2e08feb07c80d1b06c110fe22e1ee76e899d76fe Mon Sep 17 00:00:00 2001 From: Vlad Saitov Date: Thu, 30 Apr 2026 17:41:26 +0500 Subject: [PATCH 1/3] [NO-REF] - fix abscence of quiz_session_id on subsequent requests in tests --- spec/src/modules/quizzes.js | 48 +++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/spec/src/modules/quizzes.js b/spec/src/modules/quizzes.js index 927153bb..0d263801 100644 --- a/spec/src/modules/quizzes.js +++ b/spec/src/modules/quizzes.js @@ -268,12 +268,13 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should return result given answers parameter', () => { + const quizSessionId = 'test-session-id'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, }); - return quizzes.getQuizNextQuestion(validQuizId, { answers: validAnswers }).then((res) => { + return quizzes.getQuizNextQuestion(validQuizId, { answers: validAnswers, quizSessionId }).then((res) => { expect(res).to.have.property('quiz_version_id').to.be.an('string'); expect(res).to.have.property('next_question').to.be.an('object'); expect(res).to.have.property('quiz_session_id').to.be.an('string'); @@ -282,12 +283,15 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should skip tracking', () => { + const quizSessionId = 'test-session-id'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, }); - return quizzes.getQuizNextQuestion(validQuizId, { answers: validAnswers, skipTracking: true }).then(() => { + return quizzes.getQuizNextQuestion(validQuizId, { + answers: validAnswers, quizSessionId, skipTracking: true, + }).then(() => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(requestedUrlParams).to.have.property('skip_tracking').to.equal('true'); @@ -353,13 +357,17 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); describe('getQuizResults', () => { + const quizSessionId = 'test-session-id'; + it('Should return result given valid API key and answers parameter', () => { const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -384,7 +392,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, section }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, section, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -405,7 +415,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, fmtOptions }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, fmtOptions, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); const resultWithTestField = res.response.results.find((result) => result.data.testField); @@ -429,7 +441,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, hiddenFields }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, hiddenFields, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); const resultWithTestField = res.response.results.find((result) => result.data.testField); @@ -453,7 +467,7 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers }).then((initialResponse) => { + return quizzes.getQuizNextQuestion(validQuizId, {}).then((initialResponse) => { const quizVersionId = initialResponse.quiz_version_id; return quizzes.getQuizResults(validQuizId, { @@ -484,7 +498,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { userId, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -506,7 +522,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { segments, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -526,7 +544,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, page }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, page, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -547,7 +567,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, resultsPerPage }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, resultsPerPage, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); @@ -568,7 +590,9 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { fetch: fetchSpy, }); - return quizzes.getQuizResults(validQuizId, { answers: validAnswers, filters }).then((res) => { + return quizzes.getQuizResults(validQuizId, { + answers: validAnswers, filters, quizSessionId, + }).then((res) => { const requestedUrlParams = helpers.extractUrlParamsFromFetch(fetchSpy); expect(res).to.have.property('request').to.be.an('object'); From f82aa273b583a6872c4ad272e9e072f678c51855 Mon Sep 17 00:00:00 2001 From: Vlad Saitov Date: Thu, 30 Apr 2026 17:46:41 +0500 Subject: [PATCH 2/3] Fix eslint --- spec/src/modules/quizzes.js | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/src/modules/quizzes.js b/spec/src/modules/quizzes.js index 0d263801..e540e2d1 100644 --- a/spec/src/modules/quizzes.js +++ b/spec/src/modules/quizzes.js @@ -461,7 +461,6 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should return a result provided a valid apiKey, quizId, quizVersionId and quizSessionId', () => { - const quizSessionId = '12345'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, From d4142d568db6e03feb7dbf016925737b750e59fe Mon Sep 17 00:00:00 2001 From: Vlad Saitov Date: Thu, 30 Apr 2026 23:32:00 +0500 Subject: [PATCH 3/3] remove quizSessionId duplicates --- spec/src/modules/quizzes.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spec/src/modules/quizzes.js b/spec/src/modules/quizzes.js index e540e2d1..7b5e95ff 100644 --- a/spec/src/modules/quizzes.js +++ b/spec/src/modules/quizzes.js @@ -160,6 +160,8 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); describe('getQuizNextQuestion', () => { + const quizSessionId = 'test-session-id'; + it('Should return a result provided a valid apiKey and quizId', () => { const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, @@ -203,7 +205,6 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should return a result provided a valid apiKey, quizId and quizVersionId, quizSessionId', () => { - const quizSessionId = '123;'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, @@ -268,7 +269,6 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should return result given answers parameter', () => { - const quizSessionId = 'test-session-id'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy, @@ -283,7 +283,6 @@ describe(`ConstructorIO - Quizzes${bundledDescriptionSuffix}`, () => { }); it('Should skip tracking', () => { - const quizSessionId = 'test-session-id'; const { quizzes } = new ConstructorIO({ apiKey: quizApiKey, fetch: fetchSpy,