From c537b3e9dc381421332c45b7002da373a325b0b7 Mon Sep 17 00:00:00 2001 From: Andrew Telnov Date: Tue, 25 Feb 2025 20:18:55 +0200 Subject: [PATCH] Page Conditional Visibility doesn't work when the first page is a starting page fix #9520 --- packages/survey-core/src/survey.ts | 1 + packages/survey-core/tests/surveytests.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/survey-core/src/survey.ts b/packages/survey-core/src/survey.ts index 51d4025ce5..0d68c095bb 100644 --- a/packages/survey-core/src/survey.ts +++ b/packages/survey-core/src/survey.ts @@ -4968,6 +4968,7 @@ export class SurveyModel extends SurveyElementCore this.startTimerFromUI(); this.onStarted.fire(this, {}); this.updateVisibleIndexes(); + this.currentPageNo = 0; if (!!this.currentPage) { this.currentPage.locStrsChanged(); } diff --git a/packages/survey-core/tests/surveytests.ts b/packages/survey-core/tests/surveytests.ts index 63e4da012c..d618d62626 100644 --- a/packages/survey-core/tests/surveytests.ts +++ b/packages/survey-core/tests/surveytests.ts @@ -21342,7 +21342,20 @@ QUnit.test("Check questionsOnPageMode is 'singlePage' & showPreview", function ( assert.equal(survey.visiblePages[0].name, "single-page", "The name is single-page, #2"); assert.equal(survey.visiblePages[0].id, singlePageId, "We do not re-create the single-page, #2"); }); - +QUnit.test("The Start Page & changing the question visibility, Bug#9520", function (assert) { + const survey = new SurveyModel({ + pages: [ + { elements: [{ type: "text", name: "q1" }] }, + { name: "p1", visibleIf: "{q1}='a'", elements: [{ type: "text", name: "q2" }] }, + { name: "p2", elements: [{ type: "text", name: "q1" }] } + ], + firstPageIsStarted: true, + }); + assert.equal(survey.visiblePages.length, 1, "visiblePages #1"); + survey.setValue("q1", "a"); + survey.start(); + assert.equal(survey.currentPage.name, "p1", "p1 is the current page"); +}); QUnit.test("The Start Page has -1 index when enabling auto-numeration for survey pages, Bug#8983", function (assert) { const survey = new SurveyModel({ "pages": [{