From 4a2e7379299048551ddefe2831a4143d43263de3 Mon Sep 17 00:00:00 2001 From: jhuerta Date: Thu, 15 May 2025 15:20:05 -0700 Subject: [PATCH] Added split row validation fix --- alignStandardsPageResults.xlsx | Bin 172667 -> 174130 bytes tests/ExACT_alignStandardsPage.js | 94 ++++++++++++++++++++++-------- 2 files changed, 70 insertions(+), 24 deletions(-) diff --git a/alignStandardsPageResults.xlsx b/alignStandardsPageResults.xlsx index 0a9d5b821d60ea5e71deef417611a8f120794474..b5ca039a702f53593ea58753cff6bbad0d1afb02 100644 GIT binary patch delta 12764 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 JM;&$4e*n+i1DpT= delta 12065 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 { - const elementText = await driver.findElement(By.id('stdbox')).getText(); - if (elementText !== 'Make sense of problems and persevere in solving them.') { - throw new Error(`Expected: "Make sense of problems and persevere in solving them." text; Actual: "${elementText}"`); + try { + const element = await driver.findElement(By.xpath(`//div[@id='stdbox']`)); + + //Get different versions of the text for debugging + const fullText = await element.getText(); + + //Check for the expected text in different ways + const expectedText = 'Make sense of problems and persevere in solving them.'; + const trimmedFullText = fullText.trim(); + const firstLine = trimmedFullText.split('\n')[0].trim(); + + //Try multiple matching strategies + if (firstLine.includes(expectedText)) { + console.log(`Passed: "${expectedText}" text in first line`); + } else if (trimmedFullText.includes(expectedText)) { + console.log(`Passed: "${expectedText}" text within full text`); + } else { + throw new Error( + `Text validation failed.\nExpected: "${expectedText}"\n` + + `Full text: "${fullText}"\n` + + `First line: "${firstLine}"\n` + ); + } + + } catch (error) { + console.error('Detailed error during validation:', error); + throw error; //Re-throw after logging } - console.log('Passed: Make sense of problems and persevere in solving them. text matched as expected'); } }, @@ -1899,7 +1922,7 @@ const steps = [ { description: 'Click alignment 1 Deatils button', action: async () => await driver.findElement(By.css('#\\38 73598469')).click() }, { description: 'Browser sleep', action: async () => await driver.sleep(2000) }, - //3-variable linear system word problems description + //3-variable linear system word problems description 1 { description: 'Validate 3-variable linear system word problems description', action: async () => { @@ -1911,7 +1934,7 @@ const steps = [ } }, - //Alignment Pending warning icon + //Alignment Pending warning icon 1 { description: 'Verify Alignment Pending warning icon is present', action: async () => @@ -1923,7 +1946,7 @@ const steps = [ } }, - //Alignment Pending label + //Alignment Pending label 1 { description: 'Validate Alignment Pending label', action: async () => { @@ -1935,7 +1958,7 @@ const steps = [ } }, - //Alignment Pending checkbox icon + //Alignment Pending checkbox icon 1 { description: 'Verify Alignment Pending checkbox icon is present', action: async () => @@ -1947,7 +1970,7 @@ const steps = [ } }, - //A Lunch-In Affair link text + //A Lunch-In Affair link text 2 { description: 'Validate A Lunch-In Affair link text', action: async () => { @@ -1959,7 +1982,7 @@ const steps = [ } }, - //A Lunch-In Affair link text color -gray + //A Lunch-In Affair link text 2 color -gray { description: 'Validate A Lunch-In Affair link text color', action: async () => { @@ -1971,7 +1994,7 @@ const steps = [ } }, - //Alignment 2 Details button text + //Alignment 2 Details button text 2 { description: 'Validate Alignment 2 Details button text', action: async () => { @@ -1983,7 +2006,7 @@ const steps = [ } }, - //Alignment 2 Details button color -gray + //Alignment 2 Details button 2 color -gray { description: 'Validate Alignment 2 Details button color', action: async () => { @@ -1995,7 +2018,7 @@ const steps = [ } }, - //Not Aligned warning icon + //Not Aligned warning icon 2 { description: 'Verify Not Aligned warning icon is present', action: async () => @@ -2007,19 +2030,19 @@ const steps = [ } }, - //Not Aligned label + //ECS Aligned label 2 { description: 'Validate Not Aligned label', action: async () => { const elementText = await driver.findElement(By.css('#lsn-id-873598488 span')).getText(); - if (elementText !== 'Not Aligned') { - throw new Error(`Expected: "Not Aligned" label; Actual: "${elementText}"`); + if (elementText !== 'ECS Aligned') { + throw new Error(`Expected: "ECS Aligned" label; Actual: "${elementText}"`); } - console.log('Passed: Not Aligned label matched as expected'); + console.log('Passed: ECS Aligned label matched as expected'); } }, - //Not Aligned checkbox icon + //ECS Aligned checkbox icon 2 { description: 'Verify Not Aligned checkbox icon is present', action: async () => @@ -3056,11 +3079,34 @@ const steps = [ { description: 'Validate Concept List label', action: async () => { - const elementText = await driver.findElement(By.css('#tabsr-3')).getText(); - if (elementText !== '* Concept List') { - throw new Error(`Expected: "* Concept List" label; Actual: "${elementText}"`); + try { + const element = await driver.findElement(By.css('#tabsr-3')); + + //Get different versions of the text for debugging + const fullText = await element.getText(); + + //Check for the expected text in different ways + const expectedText = '* Concept List'; + const trimmedFullText = fullText.trim(); + const firstLine = trimmedFullText.split('\n')[0].trim(); + + //Try multiple matching strategies + if (firstLine.includes(expectedText)) { + console.log(`Passed: "${expectedText}" text in first line`); + } else if (trimmedFullText.includes(expectedText)) { + console.log(`Passed: "${expectedText}" text within full text`); + } else { + throw new Error( + `Text validation failed.\nExpected: "${expectedText}"\n` + + `Full text: "${fullText}"\n` + + `First line: "${firstLine}"\n` + ); + } + + } catch (error) { + console.error('Detailed error during validation:', error); + throw error; //Re-throw after logging } - console.log('Passed: * Concept List label matched as expected'); } }, @@ -5448,7 +5494,7 @@ try { console.log('PASSED: Align Standards Page(ExACT_alignStandardsPage); All test steps completed successfully'); testStatus = 'Passed'; } else { - console.log('FAILED: Align Standards Page(ExACT_alignStandardsPage); One or more test steps failed'); + console.log('FAILED: (ECS-2829) Align Standards Page(ExACT_alignStandardsPage); One or more test steps failed'); testStatus = 'Failed'; }