Add dashboard and My Standards search tests; update existing tests and results

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jhuerta
2026-10-07 15:27:11 -07:00
parent c4d68d5a13
commit 10840ac188
19 changed files with 61170 additions and 9016 deletions

4
.gitignore vendored
View File

@@ -1,2 +1,4 @@
node_modules node_modules
screenshots screenshots
.vscode/
.claude/

Binary file not shown.

BIN
dashboard.xlsx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,9 +1,14 @@
import express from 'express'; import express from 'express';
import ExACT_landingPage from './tests/ExACT_landingPage.js'; import ExACT_landingPage from './tests/ExACT_landingPage.js';
import ExACT_login from './tests/ExACT_login.js'; //import ExACT_login from './tests/ExACT_login.js';
//Dashboard //Dashboard
import ExACT_dashboardMyContent from './tests/ExACT_DashboardMyContent.js'; import ExACT_dashboard from './tests/ExACT_dashboard.js';
import ExACT_dashboardMyContent from './tests/ExACT_dashboardMyContent.js';
import ExACT_dashboardSemanticStandardsComparison from './tests/ExACT_dashboardSemanticStandardsComparison.js';
import dashboardMyStandards from './tests/dashboardMyStandards.js';
import myStandardsSearchAlignedContent from './tests/myStandardsSearchAlignedContent.js';
import myStandardsSearchRelatedStandards from './tests/myStandardsSearchRelatedStandards.js';
//Content //Content
import ExACT_contentPage from './tests/ExACT_contentPage.js'; import ExACT_contentPage from './tests/ExACT_contentPage.js';
import ExACT_editItem from './tests/ExACT_editItem.js'; import ExACT_editItem from './tests/ExACT_editItem.js';
@@ -28,47 +33,54 @@ app.get('/', (req, res) => {
<h1 style="text-align:center; color:#055a8c; padding-top: 20px;">ExACT Automated Regression Scripts</h1> <h1 style="text-align:center; color:#055a8c; padding-top: 20px;">ExACT Automated Regression Scripts</h1>
<div style="text-align:center; color:#001; font-size:15px; ">(Click the corresponding link to execute the desired script)</div> <div style="text-align:center; color:#001; font-size:15px; ">(Click the corresponding link to execute the desired script)</div>
<br><div style="padding:3px;"><strong><a href='/ExACT_landingPage' target='_blank'>ExACT Landing Page</a></strong></div> <h1 style="text-align:center; color:#055a8c; font-size:20px; ">EDGATE LANDING PAGE</h1>
<div style="padding:3px;"><strong><a href='/ExACT_landingPage' target='_blank'>ExACT Landing Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_login' target='_blank'>Login</a></strong></div>
<h1 style="text-align:center; color:#055a8c; font-size:20px; ">DASHBOARD</h1> <h1 style="text-align:center; color:#055a8c; font-size:20px; ">DASHBOARD</h1>
<div style="padding:3px;"><strong><a href='/ExACT_dashboard' target='_blank'>Correlations Dashboard</a></strong></div>
<div style="padding:3px;"><strong><a href='/ExACT_dashboardMyContent' target='_blank'>My Content Widget</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_dashboardMyContent' target='_blank'>My Content Widget</a></strong></div>
<div style="padding:3px;"><strong><a href='/ExACT_dashboardSemanticStandardsComparison' target='_blank'>Semantic Standards Comparison Widget</a></strong></div>
<div style="padding:3px;"><strong><a href='/dashboardMyStandards' target='_blank'>My Standards Widget</a></strong></div>
<div style="padding:3px;"><strong><a href='/myStandardsSearchAlignedContent' target='_blank'>My Standards Search - Aligned Content</a></strong></div>
<div style="padding:3px;"><strong><a href='/myStandardsSearchRelatedStandards' target='_blank'>My Standards Search - Related Standards</a></strong></div>
<h1 style="text-align:center; color:#055a8c; font-size:20px; ">CONTENT</h1> <h1 style="text-align:center; color:#055a8c; font-size:20px; ">CONTENT</h1>
<div style="padding:3px;"><strong><a href='/ExACT_contentPage' target='_blank'>Content Page</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_contentPage' target='_blank'>Content Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_editItem' target='_blank'>Edit Item</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_editItem' target='_blank'>Edit Item</a></strong></div>
<h1 style="text-align:center; color:#055a8c; font-size:20px; ">ALIGN</h1> <h1 style="text-align:center; color:#055a8c; font-size:20px; ">ALIGN</h1>
<div style="padding:3px;"><strong><a href='/ExACT_alignContentPage' target='_blank'>Align Content Page</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_alignContentPage' target='_blank'>Align Content Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_editItemAddConcept' target='_blank'>Align - Edit Content and Align Concept</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_editItemAddConcept' target='_blank'>Align - Edit Content and Align Concept</a></strong></div>
<div style="padding:3px;"><strong><a href='/ExACT_alignStandardsPage' target='_blank'>Align Standards Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_alignStandardsPage' target='_blank'>Align Standards Page</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_alignConceptsPage' target='_blank'>Align Concepts Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_alignConceptsPage' target='_blank'>Align Concepts Page</a></strong></div>
<h1 style="text-align:center; color:#055a8c; font-size:20px; ">FRAMEWORKS</h1> <h1 style="text-align:center; color:#055a8c; font-size:20px; ">FRAMEWORKS</h1>
<div style="padding:3px;"><strong><a href='/ExACT_frameworkManagementPage' target='_blank'>Framework Management Page</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_frameworkManagementPage' target='_blank'>Framework Management Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_frameworkPublishingPage' target='_blank'>Framework Publishing Page</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_frameworkPublishingPage' target='_blank'>Framework Publishing Page</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_frameworkPublishFrameworkDIV' target='_blank'>Publish Framework DIV</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_frameworkPublishFrameworkDIV' target='_blank'>Publish Framework DIV</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_frameworkFrameworkGroupsDIV' target='_blank'>Framework Groups DIV</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_frameworkFrameworkGroupsDIV' target='_blank'>Framework Groups DIV</a></strong></div>
<br><div style="padding:3px;"><strong><a href='/ExACT_frameworkFrameworkSettingsDIV' target='_blank'>Framework Settings DIV</a></strong></div> <div style="padding:3px;"><strong><a href='/ExACT_frameworkFrameworkSettingsDIV' target='_blank'>Framework Settings DIV</a></strong></div>
<br> <br>
</div> </div>
`); `);
}) })
//Landing: //Landing:
app.get('/ExACT_landingPage', ExACT_landingPage); app.get('/ExACT_landingPage', ExACT_landingPage);
//Login //Login
app.get('/ExACT_login', ExACT_login); //app.get('/ExACT_login', ExACT_login);
//Dashboard //Dashboard
app.get('/ExACT_dashboard', ExACT_dashboard);
//My Content //My Content
app.get('/ExACT_dashboardMyContent', ExACT_dashboardMyContent); app.get('/ExACT_dashboardMyContent', ExACT_dashboardMyContent);
app.get('/ExACT_dashboardSemanticStandardsComparison', ExACT_dashboardSemanticStandardsComparison);
app.get('/dashboardMyStandards', dashboardMyStandards);
app.get('/myStandardsSearchAlignedContent', myStandardsSearchAlignedContent);
app.get('/myStandardsSearchRelatedStandards', myStandardsSearchRelatedStandards);
//Content //Content
app.get('/ExACT_contentPage', ExACT_contentPage); app.get('/ExACT_contentPage', ExACT_contentPage);
//Edit Item //Edit Item
app.get('/ExACT_editItem', ExACT_editItem); app.get('/ExACT_editItem', ExACT_editItem);
//Align //Align
app.get('/ExACT_alignContentPage', ExACT_alignContentPage); app.get('/ExACT_alignContentPage', ExACT_alignContentPage);
@@ -81,6 +93,7 @@ app.get('/ExACT_contentPage', ExACT_contentPage);
app.get('/ExACT_frameworkPublishFrameworkDIV', ExACT_frameworkPublishFrameworkDIV); app.get('/ExACT_frameworkPublishFrameworkDIV', ExACT_frameworkPublishFrameworkDIV);
app.get('/ExACT_frameworkFrameworkGroupsDIV', ExACT_frameworkFrameworkGroupsDIV); app.get('/ExACT_frameworkFrameworkGroupsDIV', ExACT_frameworkFrameworkGroupsDIV);
app.get('/ExACT_frameworkFrameworkSettingsDIV', ExACT_frameworkFrameworkSettingsDIV); app.get('/ExACT_frameworkFrameworkSettingsDIV', ExACT_frameworkFrameworkSettingsDIV);
app.listen(8000, () => {
app.listen(8000, () => {
console.log('Server is up and running on port 8000'); console.log('Server is up and running on port 8000');
}); });

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

5596
tests/ExACT_dashboard.js Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -55,10 +55,11 @@ const steps = [
action: async () => { action: async () => {
const element = await driver.findElement(By.css('.e-heading')); const element = await driver.findElement(By.css('.e-heading'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
@@ -71,6 +72,14 @@ const steps = [
errors.push(message); errors.push(message);
} }
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Dashboard - Page title text font matched as expected');
} else {
const message = `Expected: Dashboard - Page title text font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message);
}
//Validate color -navy blue //Validate color -navy blue
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Dashboard - Page title text color matched as expected'); console.log('Passed: Dashboard - Page title text color matched as expected');
@@ -122,10 +131,11 @@ const steps = [
action: async () => { action: async () => {
const element = await driver.findElement(By.css('.standards-compare h2')); const element = await driver.findElement(By.css('.standards-compare h2'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
@@ -138,6 +148,22 @@ const steps = [
errors.push(message); errors.push(message);
} }
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Dashboard - Semantic Standards Comparison Widget title font matched as expected');
} else {
const message = `Expected: Dashboard - Semantic Standards Comparison Widget title font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message);
}
//Validate size
if (elementSize === '18px') {
console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text font-size matched as expected');
} else {
const message = `Expected: Dashboard - Semantic Standards Comparison Widget title text font-size "18px"; Actual: "${elementSize}"`;
errors.push(message);
}
//Validate color -navy blue //Validate color -navy blue
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text color matched as expected'); console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text color matched as expected');
@@ -173,10 +199,11 @@ const steps = [
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscMap-tab')); const element = await driver.findElement(By.css('#sscMap-tab'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
@@ -189,6 +216,14 @@ const steps = [
errors.push(message); errors.push(message);
} }
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Dashboard - National Standards tab title font matched as expected');
} else {
const message = `Expected: Dashboard - National Standards tab title font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message);
}
//Validate color -navy blue //Validate color -navy blue
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Dashboard - National Standards tab title text color matched as expected'); console.log('Passed: Dashboard - National Standards tab title text color matched as expected');
@@ -224,10 +259,11 @@ const steps = [
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscFilterLaunch-tab')); const element = await driver.findElement(By.css('#sscFilterLaunch-tab'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
@@ -240,6 +276,14 @@ const steps = [
errors.push(message); errors.push(message);
} }
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Dashboard - Custom Comparison tab title font matched as expected');
} else {
const message = `Expected: Dashboard - Custom Comparison tab title font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message);
}
//Validate color -gray //Validate color -gray
if (elementColor === 'rgba(182, 186, 181, 1)') { if (elementColor === 'rgba(182, 186, 181, 1)') {
console.log('Passed: Dashboard - Custom Comparison tab title color matched as expected'); console.log('Passed: Dashboard - Custom Comparison tab title color matched as expected');
@@ -413,16 +457,17 @@ const steps = [
} }
}, },
//Dashboard - National Standards tab title, text, and font size (dimmed) //National Standards tab title, text, and font size (dimmed)
{ {
description: 'Validate Dashboard - National Standards tab title text, color, and size', description: 'Validate National Standards tab title text, color, and size',
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscMap-tab')); const element = await driver.findElement(By.css('#sscMap-tab'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
@@ -435,6 +480,14 @@ const steps = [
errors.push(message); errors.push(message);
} }
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Dashboard - National Standards tab title font matched as expected');
} else {
const message = `Expected: Dashboard - National Standards tab title font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message);
}
//Validate color -gray //Validate color -gray
if (elementColor === 'rgba(182, 186, 181, 1)') { if (elementColor === 'rgba(182, 186, 181, 1)') {
console.log('Passed: Dashboard - National Standards tab title text color matched as expected'); console.log('Passed: Dashboard - National Standards tab title text color matched as expected');
@@ -464,41 +517,50 @@ const steps = [
} }
}, },
//Dashboard - Custom Comparison tab title and color (active) //Custom Comparison tab title and color (active)
{ {
description: 'Validate Dashboard - Custom Comparison tab title, text color, and size', description: 'Validate Custom Comparison tab title, text color, and size',
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscFilterLaunch-tab')); const element = await driver.findElement(By.css('#sscFilterLaunch-tab'));
//Get text, color, and size //Get text, font, size, and color
const elementText = await element.getText(); const elementText = await element.getText();
const elementColor = await element.getCssValue('color'); const elementFont = await element.getCssValue('font-family');
const elementSize = await element.getCssValue('font-size'); const elementSize = await element.getCssValue('font-size');
const elementColor = await element.getCssValue('color');
//Track all errors //Track all errors
const errors = []; const errors = [];
//Validate text //Validate text
if (elementText === 'Custom Comparison') { if (elementText === 'Custom Comparison') {
console.log('Passed: Dashboard - Custom Comparison tab title matched as expected'); console.log('Passed: Custom Comparison tab title matched as expected');
} else { } else {
const message = `Expected: Dashboard - "Custom Comparison" tab title; Actual: "${elementText}"`; const message = `Expected: "Custom Comparison" tab title; Actual: "${elementText}"`;
errors.push(message);
}
//Validate font
if (elementFont === 'Poppins, sans-serif') {
console.log('Passed: Custom Comparison tab title font matched as expected');
} else {
const message = `Expected: Custom Comparison tab title font "Poppins, sans-serif"; Actual: "${elementFont}"`;
errors.push(message); errors.push(message);
} }
//Validate color -navy blue //Validate color -navy blue
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Dashboard - Custom Comparison tab title color matched as expected'); console.log('Passed: Custom Comparison tab title color matched as expected');
} else { } else {
const message = `Expected: Dashboard - Custom Comparison tab title color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`; const message = `Expected: Custom Comparison tab title color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`;
errors.push(message); errors.push(message);
} }
//Validate font size //Validate font size
if (elementSize === '15px') { if (elementSize === '15px') {
console.log('Passed: Dashboard - Custom Comparison tab title font size matched as expected'); console.log('Passed: Custom Comparison tab title font size matched as expected');
} else { } else {
const message = `Expected: Dashboard - Custom Comparison tab title font size "15px"; Actual: "${elementSize}"`; const message = `Expected: Custom Comparison tab title font size "15px"; Actual: "${elementSize}"`;
errors.push(message); errors.push(message);
} }
@@ -522,9 +584,9 @@ const steps = [
const elementText = await driver.findElement(By.css('#sscFilterLaunchPane > div > div')).getText(); const elementText = await driver.findElement(By.css('#sscFilterLaunchPane > div > div')).getText();
if (elementText === `EdGate's advanced analysis tool provides semantic similarities, differences, and gaps across different state or organizational standards. Our advanced text analysis calculates semantic matches and provides a comprehensive comparison dataset for your team to make informed decisions faster and more effectively.`) { if (elementText === `EdGate's advanced analysis tool provides semantic similarities, differences, and gaps across different state or organizational standards. Our advanced text analysis calculates semantic matches and provides a comprehensive comparison dataset for your team to make informed decisions faster and more effectively.`) {
console.log("Passed: Dashboard - Custom Comparison info text matched as expected"); console.log("Passed: Custom Comparison - info text matched as expected");
} else { } else {
throw new Error(`Expected: Dashboard - "Custom Comparison info text did not match"; Actual: "${elementText}"`); throw new Error(`Expected: Custom Comparison - "Custom Comparison info text did not match"; Actual: "${elementText}"`);
} }
} }
}, },
@@ -558,25 +620,25 @@ const steps = [
//Validate text //Validate text
if (elementText === 'Get Started') { if (elementText === 'Get Started') {
console.log('Passed: Dashboard - Get Started button text matched as expected'); console.log('Passed: Custom Comparison - Get Started button text matched as expected');
} else { } else {
const message = `Expected: Dashboard - "Get Started" button text; Actual: "${elementText}"`; const message = `Expected: Custom Comparison - "Get Started" button text; Actual: "${elementText}"`;
errors.push(message); errors.push(message);
} }
//Validate color -green //Validate color -green
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Dashboard - Get Started button color matched as expected'); console.log('Passed: Custom Comparison - Get Started button color matched as expected');
} else { } else {
const message = `Expected: Dashboard - Get Started button color "rgba(48, 200, 172, 1)"; Actual: "${elementColor}"`; const message = `Expected: Custom Comparison - Get Started button color "rgba(48, 200, 172, 1)"; Actual: "${elementColor}"`;
errors.push(message); errors.push(message);
} }
//Validate button icon is present //Validate button icon is present
if (icon) { if (icon) {
console.log('Passed: Dashboard - Get Started button icon is present'); console.log('Passed: Custom Comparison - Get Started button icon is present');
} else { } else {
const message = 'Expected: Dashboard - Get Started button icon not found'; const message = 'Expected: Custom Comparison - Get Started button icon not found';
errors.push(message); errors.push(message);
} }
@@ -621,9 +683,9 @@ const steps = [
} }
}, },
//Dashboard - National Standards tab title, text, and font size (active) //Custom Comparison - National Standards tab title, text, and font size (active)
{ {
description: 'Validate Dashboard - National Standards tab title text, color, and size', description: 'Validate Custom Comparison - National Standards tab title text, color, and size',
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscMap-tab')); const element = await driver.findElement(By.css('#sscMap-tab'));
@@ -637,25 +699,25 @@ const steps = [
//Validate text //Validate text
if (elementText === 'National Standards') { if (elementText === 'National Standards') {
console.log('Passed: Dashboard - National Standards tab title matched as expected'); console.log('Passed: Custom Comparison - National Standards tab title matched as expected');
} else { } else {
const message = `Expected: Dashboard - "National Standards"; Actual: "${elementText}"`; const message = `Expected: Custom Comparison - "National Standards"; Actual: "${elementText}"`;
errors.push(message); errors.push(message);
} }
//Validate color -navy blue //Validate color -navy blue
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Dashboard - National Standards tab title text color matched as expected'); console.log('Passed: Custom Comparison - National Standards tab title text color matched as expected');
} else { } else {
const message = `Expected: Dashboard - National Standards tab title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`; const message = `Expected: Custom Comparison - National Standards tab title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`;
errors.push(message); errors.push(message);
} }
//Validate font size //Validate font size
if (elementSize === '15px') { if (elementSize === '15px') {
console.log('Passed: Dashboard - National Standards tab title text font-size matched as expected'); console.log('Passed: Custom Comparison - National Standards tab title text font-size matched as expected');
} else { } else {
const message = `Expected: Dashboard - National Standards tab title text font-size "15px"; Actual: "${elementSize}"`; const message = `Expected: Custom Comparison - National Standards tab title text font-size "15px"; Actual: "${elementSize}"`;
errors.push(message); errors.push(message);
} }
@@ -672,9 +734,9 @@ const steps = [
} }
}, },
//Dashboard - Custom Comparison tab title and color (dimmed) //Custom Comparison - Custom Comparison tab title and color (dimmed)
{ {
description: 'Validate Dashboard - Custom Comparison tab title, text color, and size', description: 'Validate Custom Comparison - Custom Comparison tab title, text color, and size',
action: async () => { action: async () => {
const element = await driver.findElement(By.css('#sscFilterLaunch-tab')); const element = await driver.findElement(By.css('#sscFilterLaunch-tab'));
@@ -688,25 +750,25 @@ const steps = [
//Validate text //Validate text
if (elementText === 'Custom Comparison') { if (elementText === 'Custom Comparison') {
console.log('Passed: Dashboard - Custom Comparison tab title matched as expected'); console.log('Passed: Custom Comparison - Custom Comparison tab title matched as expected');
} else { } else {
const message = `Expected: Dashboard - "Custom Comparison" tab title; Actual: "${elementText}"`; const message = `Expected: Custom Comparison - "Custom Comparison" tab title; Actual: "${elementText}"`;
errors.push(message); errors.push(message);
} }
//Validate color -gray //Validate color -gray
if (elementColor === 'rgba(182, 186, 181, 1)') { if (elementColor === 'rgba(182, 186, 181, 1)') {
console.log('Passed: Dashboard - Custom Comparison tab title color matched as expected'); console.log('Passed: Custom Comparison - Custom Comparison tab title color matched as expected');
} else { } else {
const message = `Expected: Dashboard - Custom Comparison tab title color "rgba(182, 186, 181, 1)"; Actual: "${elementColor}"`; const message = `Expected: Custom Comparison - Custom Comparison tab title color "rgba(182, 186, 181, 1)"; Actual: "${elementColor}"`;
errors.push(message); errors.push(message);
} }
//Validate font size //Validate font size
if (elementSize === '15px') { if (elementSize === '15px') {
console.log('Passed: Dashboard - Custom Comparison tab title font size matched as expected'); console.log('Passed: Custom Comparison - Custom Comparison tab title font size matched as expected');
} else { } else {
const message = `Expected: Dashboard - Custom Comparison tab title font size "15px"; Actual: "${elementSize}"`; const message = `Expected: Custom Comparison - Custom Comparison tab title font size "15px"; Actual: "${elementSize}"`;
errors.push(message); errors.push(message);
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,12 @@
import { Builder, By, Key, until } from 'selenium-webdriver'; import { Builder, By, Key, until, Select } from 'selenium-webdriver';
import { Options as ChromeOptions } from 'selenium-webdriver/chrome.js'; import { Options as ChromeOptions } from 'selenium-webdriver/chrome.js';
import fs from 'fs'; import fs from 'fs';
import XLSX from 'xlsx'; import XLSX from 'xlsx';
import path from 'path'; import path from 'path';
import { error } from 'console';
const ExACT_landingPage = (req, res) => { const ExACT_landingPage = (req, res) => {
res.send('<h2>ExACT Automated Test Script: ExACT Login Page(ExACT_landingPage); Initiated</h2>'); res.send('<h2>ExACT Automated Test Script: EGATE LANDING PAGE: ExACT Login Page (ExACT_landingPage) | Initiated</h2>');
(async function example() { (async function example() {
let driver = await new Builder() let driver = await new Builder()
.forBrowser('chrome') .forBrowser('chrome')
@@ -30,13 +31,7 @@ const steps = [
{ {
description: 'Loading Page', description: 'Loading Page',
action: async () => { action: async () => {
//Wait for page to load completely console.log('------------->| ExACT LANDING PAGE |<-------------');
await driver.wait(async () => {
const readyState = await driver.executeScript('return document.readyState');
return readyState === 'complete';
}, 30000, 'ExACT Landing Page did not fully load within 30 seconds');
console.log('------------->| BEGIN SCRIPT |<-------------');
console.log('---------->| ExACT Landing Page |<----------');
//Wait until the element exists in the DOM //Wait until the element exists in the DOM
const exactLogo = await driver.wait( const exactLogo = await driver.wait(
@@ -55,7 +50,7 @@ const steps = [
const readyState = await driver.executeScript('return document.readyState'); const readyState = await driver.executeScript('return document.readyState');
return readyState === 'complete'; return readyState === 'complete';
}, 30000, 'ExACT Langing page did not fully load within 30 seconds'); }, 30000, 'ExACT Langing page did not fully load within 30 seconds');
console.log('Passed: ExACT Landing Page loaded successfully'); console.log('Passed: ExACT Landing Page loaded successfully');
} }
}, },
@@ -90,7 +85,7 @@ const steps = [
errors.push(`Expected: Title font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: Title font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Title text color matched as expected'); console.log('Passed: Title text color matched as expected');
} else { } else {
@@ -147,7 +142,7 @@ const steps = [
errors.push(`Expected: Descriptive text 1 text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Descriptive text 1 text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Descriptive text 1 text color matched as expected'); console.log('Passed: Descriptive text 1 text color matched as expected');
} else { } else {
@@ -204,7 +199,7 @@ const steps = [
errors.push(`Expected: Descriptive text 2 text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Descriptive text 2 text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Descriptive text 2 text color matched as expected'); console.log('Passed: Descriptive text 2 text color matched as expected');
} else { } else {
@@ -261,7 +256,7 @@ const steps = [
errors.push(`Expected: Sign up text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Sign up text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Sign up text color matched as expected'); console.log('Passed: Sign up text color matched as expected');
} else { } else {
@@ -326,7 +321,7 @@ const steps = [
errors.push(`Expected: Free trial link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Free trial link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -red/orange //color
if (elementColor === 'rgba(255, 111, 97, 1)') { if (elementColor === 'rgba(255, 111, 97, 1)') {
console.log('Passed: Free trial link text color matched as expected'); console.log('Passed: Free trial link text color matched as expected');
} else { } else {
@@ -353,7 +348,7 @@ const steps = [
} }
}, },
//NEXT ACTION - Click Free Trial link //NEXT ACTION
{ {
description: 'Click Free Trial link', description: 'Click Free Trial link',
action: async () => { action: async () => {
@@ -383,11 +378,16 @@ const steps = [
}, },
//Left Panel //Left Panel
//ExACT logo //ExACT logo
{ {
description: 'Verify ExACT logo is present', description: 'Verify ExACT logo is present',
action: async () => { action: async () => {
const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false); const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedExactLogo) { if (expectedExactLogo) {
console.log('Passed: ExACT logo present'); console.log('Passed: ExACT logo present');
} else { } else {
@@ -426,7 +426,7 @@ const steps = [
errors.push(`Expected: ExACT Free trial text font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: ExACT Free trial text font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: ExACT Free trial color matched as expected'); console.log('Passed: ExACT Free trial color matched as expected');
} else { } else {
@@ -483,7 +483,7 @@ const steps = [
errors.push(`Expected: ExACT Free trial text font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: ExACT Free trial text font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -red/orange //color
if (elementColor === 'rgba(255, 111, 97, 1)') { if (elementColor === 'rgba(255, 111, 97, 1)') {
console.log('Passed: ExACT Free trial color matched as expected'); console.log('Passed: ExACT Free trial color matched as expected');
} else { } else {
@@ -540,7 +540,7 @@ const steps = [
errors.push(`Expected: 30 Day Free trial,...text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: 30 Day Free trial,...text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: 30 Day Free trial,...text color matched as expected'); console.log('Passed: 30 Day Free trial,...text color matched as expected');
} else { } else {
@@ -597,7 +597,7 @@ const steps = [
errors.push(`Expected: See for yourself why ExACT...text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: See for yourself why ExACT...text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: See for yourself why ExACT...text color matched as expected'); console.log('Passed: See for yourself why ExACT...text color matched as expected');
} else { } else {
@@ -696,7 +696,7 @@ const steps = [
} else { } else {
errors.push(`Expected: Absolutely Free text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Absolutely Free text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color - white //color
if (elementColor === 'rgb(255, 255, 255)') { if (elementColor === 'rgb(255, 255, 255)') {
console.log('Passed: Absolutely Free text color matched as expected'); console.log('Passed: Absolutely Free text color matched as expected');
} else { } else {
@@ -723,7 +723,7 @@ const steps = [
errors.push(`Expected: "- no credit card required or hidden fees" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`); errors.push(`Expected: "- no credit card required or hidden fees" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`);
} }
//color - span //color
if (spanFont?.color === 'rgb(255, 255, 255)') { if (spanFont?.color === 'rgb(255, 255, 255)') {
console.log('Passed: "- no credit card required or hidden fees" text color matched as expected'); console.log('Passed: "- no credit card required or hidden fees" text color matched as expected');
} else { } else {
@@ -819,7 +819,7 @@ const steps = [
} else { } else {
errors.push(`Expected: Instant Access text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Instant Access text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color - white //color
if (elementColor === 'rgb(255, 255, 255)') { if (elementColor === 'rgb(255, 255, 255)') {
console.log('Passed: Instant Access text color matched as expected'); console.log('Passed: Instant Access text color matched as expected');
} else { } else {
@@ -846,7 +846,7 @@ const steps = [
errors.push(`Expected: "- Sign up and log-in, it’s that easy" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`); errors.push(`Expected: "- Sign up and log-in, it’s that easy" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`);
} }
//color - span //color
if (spanFont?.color === 'rgb(255, 255, 255)') { if (spanFont?.color === 'rgb(255, 255, 255)') {
console.log(`Passed: "- Sign up and log-in, it’s that easy" text color matched as expected`); console.log(`Passed: "- Sign up and log-in, it’s that easy" text color matched as expected`);
} else { } else {
@@ -942,7 +942,7 @@ const steps = [
} else { } else {
errors.push(`Expected: Access Standards text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Access Standards text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color - white //color
if (elementColor === 'rgb(255, 255, 255)') { if (elementColor === 'rgb(255, 255, 255)') {
console.log('Passed: Access Standards text color matched as expected'); console.log('Passed: Access Standards text color matched as expected');
} else { } else {
@@ -969,7 +969,7 @@ const steps = [
errors.push(`Expected: "- Access all Common Core, NGSS, and NCSS Standards free" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`); errors.push(`Expected: "- Access all Common Core, NGSS, and NCSS Standards free" text font "Poppins, sans-serif"; Actual: ${spanFont?.fontFamily}`);
} }
//color - span //color
if (spanFont?.color === 'rgb(255, 255, 255)') { if (spanFont?.color === 'rgb(255, 255, 255)') {
console.log(`Passed: "- Access all Common Core, NGSS, and NCSS Standards free" text color matched as expected`); console.log(`Passed: "- Access all Common Core, NGSS, and NCSS Standards free" text color matched as expected`);
} else { } else {
@@ -1023,7 +1023,7 @@ const steps = [
errors.push(`Expected: Want to talk to a representative...text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Want to talk to a representative...text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Want to talk to a representative...text color matched as expected'); console.log('Passed: Want to talk to a representative...text color matched as expected');
} else { } else {
@@ -1088,7 +1088,7 @@ const steps = [
errors.push(`Expected: Contact Us link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Contact Us link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Contact Us link text color matched as expected'); console.log('Passed: Contact Us link text color matched as expected');
} else { } else {
@@ -1135,32 +1135,28 @@ const steps = [
if (elementText === 'Sign Up') { if (elementText === 'Sign Up') {
console.log('Passed: Sign Up title text matched as expected'); console.log('Passed: Sign Up title text matched as expected');
} else { } else {
const message = `Expected: "Sign Up"; Actual: "${elementText}"`; errors.push(`Expected: "Sign Up"; Actual: "${elementText}"`);
errors.push(message);
} }
//font-family //font-family
if (elementFont === "Poppins, sans-serif") { if (elementFont === "Poppins, sans-serif") {
console.log('Passed: Sign Up title text font matched as expected'); console.log('Passed: Sign Up title text font matched as expected');
} else { } else {
const message = `Expected: Sign Up title text font "Poppins, sans-serif"; Actual: ${elementFont}`; errors.push(`Expected: Sign Up title text font "Poppins, sans-serif"; Actual: ${elementFont}`);
errors.push(message);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Sign Up title color matched as expected'); console.log('Passed: Sign Up title color matched as expected');
} else { } else {
const message = `Expected: Sign Up title color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`; errors.push(`Expected: Sign Up title color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
errors.push(message);
} }
//font size //font size
if (elementSize === '24px') { if (elementSize === '24px') {
console.log('Passed: Sign Up title text font-size matched as expected'); console.log('Passed: Sign Up title text font-size matched as expected');
} else { } else {
const message = `Expected: Sign Up title text font-size "24px"; Actual: "${elementSize}"`; errors.push(`Expected: Sign Up title text font-size "24px"; Actual: "${elementSize}"`);
errors.push(message);
} }
//Throw summary if any validation failed //Throw summary if any validation failed
@@ -1196,32 +1192,28 @@ const steps = [
if (elementText === 'Already Have an account? Sign In') { if (elementText === 'Already Have an account? Sign In') {
console.log('Passed: Already Have an account? Sign In text matched as expected'); console.log('Passed: Already Have an account? Sign In text matched as expected');
} else { } else {
const message = `Expected: "Already Have an account? Sign In"; Actual: "${elementText}"`; errors.push(`Expected: "Already Have an account? Sign In"; Actual: "${elementText}"`);
errors.push(message);
} }
//font-family //font-family
if (elementFont === "Poppins, sans-serif") { if (elementFont === "Poppins, sans-serif") {
console.log('Passed: Already Have an account? Sign In text font matched as expected'); console.log('Passed: Already Have an account? Sign In text font matched as expected');
} else { } else {
const message = `Expected: Already Have an account? Sign In text font "Poppins, sans-serif"; Actual: ${elementFont}`; errors.push(`Expected: Already Have an account? Sign In text font "Poppins, sans-serif"; Actual: ${elementFont}`);
errors.push(message);
} }
//color -black //color
if (elementColor === 'rgba(32, 32, 32, 1)') { if (elementColor === 'rgba(32, 32, 32, 1)') {
console.log('Passed: Already Have an account? Sign In color matched as expected'); console.log('Passed: Already Have an account? Sign In color matched as expected');
} else { } else {
const message = `Expected: Already Have an account? Sign In color "rgba(32, 32, 32, 1)"; Actual: "${elementColor}"`; errors.push(`Expected: Already Have an account? Sign In color "rgba(32, 32, 32, 1)"; Actual: "${elementColor}"`);
errors.push(message);
} }
//font size //font size
if (elementSize === '12px') { if (elementSize === '12px') {
console.log('Passed: Already Have an account? Sign In text font-size matched as expected'); console.log('Passed: Already Have an account? Sign In text font-size matched as expected');
} else { } else {
const message = `Expected: Already Have an account? Sign In text font-size "12px"; Actual: "${elementSize}"`; errors.push(`Expected: Already Have an account? Sign In text font-size "12px"; Actual: "${elementSize}"`);
errors.push(message);
} }
//Throw summary if any validation failed //Throw summary if any validation failed
@@ -1275,7 +1267,7 @@ const steps = [
errors.push(`Expected: Sign In link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Sign In link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color - teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Sign In link text color matched as expected'); console.log('Passed: Sign In link text color matched as expected');
} else { } else {
@@ -1340,7 +1332,7 @@ const steps = [
errors.push(`Expected: First name label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: First name label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: First name label text color matched as expected'); console.log('Passed: First name label text color matched as expected');
} else { } else {
@@ -1420,7 +1412,7 @@ const steps = [
errors.push(`Expected: Last name label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Last name label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Last name label text color matched as expected'); console.log('Passed: Last name label text color matched as expected');
} else { } else {
@@ -1500,7 +1492,7 @@ const steps = [
errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Username label text color matched as expected'); console.log('Passed: Username label text color matched as expected');
} else { } else {
@@ -1591,7 +1583,7 @@ const steps = [
errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Password label text color matched as expected'); console.log('Passed: Password label text color matched as expected');
} else { } else {
@@ -1671,7 +1663,7 @@ const steps = [
errors.push(`Expected: Password Requirements: text font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: Password Requirements: text font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Password Requirements: text color matched as expected'); console.log('Passed: Password Requirements: text color matched as expected');
} else { } else {
@@ -1728,7 +1720,7 @@ const steps = [
errors.push(`Expected: Must be at least 8 characters. text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Must be at least 8 characters. text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Must be at least 8 characters. text color matched as expected'); console.log('Passed: Must be at least 8 characters. text color matched as expected');
} else { } else {
@@ -1794,7 +1786,7 @@ const steps = [
errors.push(`Expected: Contain at least one of each: text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Contain at least one of each: text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Contain at least one of each: text color matched as expected'); console.log('Passed: Contain at least one of each: text color matched as expected');
} else { } else {
@@ -1851,7 +1843,7 @@ const steps = [
errors.push(`Expected: Uppercase letter text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Uppercase letter text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Uppercase letter text color matched as expected'); console.log('Passed: Uppercase letter text color matched as expected');
} else { } else {
@@ -1908,7 +1900,7 @@ const steps = [
errors.push(`Expected: Lowercase letter text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Lowercase letter text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Lowercase letter text color matched as expected'); console.log('Passed: Lowercase letter text color matched as expected');
} else { } else {
@@ -1965,7 +1957,7 @@ const steps = [
errors.push(`Expected: Number text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Number text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Number text color matched as expected'); console.log('Passed: Number text color matched as expected');
} else { } else {
@@ -2022,7 +2014,7 @@ const steps = [
errors.push(`Expected: Special character (e.g. - ! @ # $ etc.) text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Special character (e.g. - ! @ # $ etc.) text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Special character (e.g. - ! @ # $ etc.) text color matched as expected'); console.log('Passed: Special character (e.g. - ! @ # $ etc.) text color matched as expected');
} else { } else {
@@ -2090,7 +2082,7 @@ const steps = [
errors.push(`Expected: Email address label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Email address label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Email address label text color matched as expected'); console.log('Passed: Email address label text color matched as expected');
} else { } else {
@@ -2177,7 +2169,7 @@ const steps = [
errors.push(`Expected: Organization label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Organization label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Organization label text color matched as expected'); console.log('Passed: Organization label text color matched as expected');
} else { } else {
@@ -2257,7 +2249,7 @@ const steps = [
errors.push(`Expected: Position label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Position label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Position label text color matched as expected'); console.log('Passed: Position label text color matched as expected');
} else { } else {
@@ -2325,7 +2317,7 @@ const steps = [
errors.push(`Expected: Phone number label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Phone number label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Phone number label text color matched as expected'); console.log('Passed: Phone number label text color matched as expected');
} else { } else {
@@ -2390,7 +2382,7 @@ const steps = [
errors.push(`Expected: I agree to the terms of service text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: I agree to the terms of service text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: I agree to the terms of service text color matched as expected'); console.log('Passed: I agree to the terms of service text color matched as expected');
} else { } else {
@@ -2477,7 +2469,7 @@ const steps = [
errors.push(`Expected: terms of service link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: terms of service link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: terms of service link text color matched as expected'); console.log('Passed: terms of service link text color matched as expected');
} else { } else {
@@ -2534,7 +2526,7 @@ const steps = [
errors.push(`Expected: Start Your Free Trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Start Your Free Trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Start Your Free Trial button background color matched as expected'); console.log('Passed: Start Your Free Trial button background color matched as expected');
} else { } else {
@@ -2566,6 +2558,10 @@ const steps = [
description: 'Verify edgate logo is present', description: 'Verify edgate logo is present',
action: async () => { action: async () => {
const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.signuplogo > img')), 5000).catch(() => false); const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.signuplogo > img')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedExactLogo) { if (expectedExactLogo) {
console.log('Passed: edgate logo present'); console.log('Passed: edgate logo present');
} else { } else {
@@ -2604,7 +2600,7 @@ const steps = [
errors.push(`Expected: © Copyright 2026 EdGate Correlation Services text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: © Copyright 2026 EdGate Correlation Services text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: © Copyright 2026 EdGate Correlation Services text color matched as expected'); console.log('Passed: © Copyright 2026 EdGate Correlation Services text color matched as expected');
} else { } else {
@@ -2631,7 +2627,7 @@ const steps = [
} }
}, },
//NEXT ACTION - Click Sign In link //NEXT ACTION
{ {
description: 'Click Sign In link', description: 'Click Sign In link',
action: async () => { action: async () => {
@@ -2665,7 +2661,7 @@ const steps = [
description: 'Validate bullet point 1', description: 'Validate bullet point 1',
action: async () => { action: async () => {
const multipleChecks = 'Bullet point 1'; const multipleChecks = 'Bullet point 1';
const elementicon = await driver.wait(until.elementLocated(By.css('li:nth-child(1) img')), 5000).catch(() => false); const elementIcon = await driver.wait(until.elementLocated(By.css('li:nth-child(1) img')), 5000).catch(() => false);
const element = await driver.findElement(By.css('li:nth-child(1) > .list-flex')); const element = await driver.findElement(By.css('li:nth-child(1) > .list-flex'));
//Get icon, text, color, and size //Get icon, text, color, and size
@@ -2678,7 +2674,7 @@ const steps = [
const errors = []; const errors = [];
//icon //icon
if (elementicon) { if (elementIcon) {
console.log('Passed: Bullet Point Icon 1 present'); console.log('Passed: Bullet Point Icon 1 present');
} else { } else {
errors.push("Bullet Point Icon 1 not found"); errors.push("Bullet Point Icon 1 not found");
@@ -2698,7 +2694,7 @@ const steps = [
errors.push(`Expected: Bullet point 1 text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Bullet point 1 text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Bullet point 1 text color matched as expected'); console.log('Passed: Bullet point 1 text color matched as expected');
} else { } else {
@@ -2763,7 +2759,7 @@ const steps = [
errors.push(`Expected: ExACT AutoAlign, link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: ExACT AutoAlign, link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: ExACT AutoAlign, link text color matched as expected'); console.log('Passed: ExACT AutoAlign, link text color matched as expected');
} else { } else {
@@ -2795,7 +2791,7 @@ const steps = [
description: 'Validate bullet point 2', description: 'Validate bullet point 2',
action: async () => { action: async () => {
const multipleChecks = 'Bullet point 2'; const multipleChecks = 'Bullet point 2';
const elementicon = await driver.wait(until.elementLocated(By.css('li:nth-child(2) img')), 5000).catch(() => false); const elementIcon = await driver.wait(until.elementLocated(By.css('li:nth-child(2) img')), 5000).catch(() => false);
const element = await driver.findElement(By.css('li:nth-child(2) > .list-flex')); const element = await driver.findElement(By.css('li:nth-child(2) > .list-flex'));
//Get icon, text, color, and size //Get icon, text, color, and size
@@ -2808,7 +2804,7 @@ const steps = [
const errors = []; const errors = [];
//icon //icon
if (elementicon) { if (elementIcon) {
console.log('Passed: Bullet Point Icon 2 present'); console.log('Passed: Bullet Point Icon 2 present');
} else { } else {
errors.push("Bullet Point Icon 2 not found"); errors.push("Bullet Point Icon 2 not found");
@@ -2828,7 +2824,7 @@ const steps = [
errors.push(`Expected: Bullet point 2 text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Bullet point 2 text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Bullet point 2 text color matched as expected'); console.log('Passed: Bullet point 2 text color matched as expected');
} else { } else {
@@ -2893,7 +2889,7 @@ const steps = [
errors.push(`Expected: Correlation Analytics. link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Correlation Analytics. link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Correlation Analytics. link text color matched as expected'); console.log('Passed: Correlation Analytics. link text color matched as expected');
} else { } else {
@@ -2925,7 +2921,7 @@ const steps = [
description: 'Validate bullet point 3', description: 'Validate bullet point 3',
action: async () => { action: async () => {
const multipleChecks = 'Bullet point 3'; const multipleChecks = 'Bullet point 3';
const elementicon = await driver.wait(until.elementLocated(By.css('li:nth-child(3) img')), 5000).catch(() => false); const elementIcon = await driver.wait(until.elementLocated(By.css('li:nth-child(3) img')), 5000).catch(() => false);
const element = await driver.findElement(By.css('li:nth-child(3) > .list-flex')); const element = await driver.findElement(By.css('li:nth-child(3) > .list-flex'));
//Get icon, text, color, and size //Get icon, text, color, and size
@@ -2938,7 +2934,7 @@ const steps = [
const errors = []; const errors = [];
//icon //icon
if (elementicon) { if (elementIcon) {
console.log('Passed: Bullet Point Icon 3 present'); console.log('Passed: Bullet Point Icon 3 present');
} else { } else {
errors.push("Bullet Point Icon 3 not found"); errors.push("Bullet Point Icon 3 not found");
@@ -2958,7 +2954,7 @@ const steps = [
errors.push(`Expected: Bullet point 3 text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Bullet point 3 text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Bullet point 3 text color matched as expected'); console.log('Passed: Bullet point 3 text color matched as expected');
} else { } else {
@@ -3023,7 +3019,7 @@ const steps = [
errors.push(`Expected: International Standards. link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: International Standards. link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: International Standards. link text color matched as expected'); console.log('Passed: International Standards. link text color matched as expected');
} else { } else {
@@ -3051,11 +3047,16 @@ const steps = [
}, },
//RIGHT PANEL //RIGHT PANEL
//ExACT logo //ExACT logo
{ {
description: 'Verify ExACT logo is present', description: 'Verify ExACT logo is present',
action: async () => { action: async () => {
const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false); const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedExactLogo) { if (expectedExactLogo) {
console.log('Passed: ExACT logo present'); console.log('Passed: ExACT logo present');
} else { } else {
@@ -3070,7 +3071,7 @@ const steps = [
action: async () => { action: async () => {
const multipleChecks = 'Welcome Back!'; const multipleChecks = 'Welcome Back!';
const element = await driver.findElement(By.css('#formLogin > p')); const element = await driver.findElement(By.css('#formLogin > p'));
const elementicon = await driver.wait(until.elementLocated(By.css('p > img')), 5000).catch(() => false); const elementIcon = await driver.wait(until.elementLocated(By.css('p > img')), 5000).catch(() => false);
//Get icon, text, color, and size //Get icon, text, color, and size
const elementText = await element.getText(); const elementText = await element.getText();
@@ -3095,7 +3096,7 @@ const steps = [
errors.push(`Expected: Welcome Back text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Welcome Back text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgba(117, 117, 117, 1)') { if (elementColor === 'rgba(117, 117, 117, 1)') {
console.log('Passed: Welcome Back text color matched as expected'); console.log('Passed: Welcome Back text color matched as expected');
} else { } else {
@@ -3110,7 +3111,7 @@ const steps = [
} }
//icon //icon
if (elementicon) { if (elementIcon) {
console.log('Passed: Welcome Back Icon present'); console.log('Passed: Welcome Back Icon present');
} else { } else {
errors.push("Welcome Back Icon not found"); errors.push("Welcome Back Icon not found");
@@ -3159,7 +3160,7 @@ const steps = [
errors.push(`Expected: Login header text font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: Login header text font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Login header text color matched as expected'); console.log('Passed: Login header text color matched as expected');
} else { } else {
@@ -3216,7 +3217,7 @@ const steps = [
errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Username label text color matched as expected'); console.log('Passed: Username label text color matched as expected');
} else { } else {
@@ -3284,7 +3285,7 @@ const steps = [
errors.push(`Expected: Username placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Username placeholder text color matched as expected'); console.log('Passed: Username placeholder text color matched as expected');
} else { } else {
@@ -3356,7 +3357,7 @@ const steps = [
errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Password label text color matched as expected'); console.log('Passed: Password label text color matched as expected');
} else { } else {
@@ -3424,7 +3425,7 @@ const steps = [
errors.push(`Expected: Password placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Password placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Password placeholder text color matched as expected'); console.log('Passed: Password placeholder text color matched as expected');
} else { } else {
@@ -3519,7 +3520,7 @@ const steps = [
errors.push(`Expected: Alert text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Alert text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -red/orange //color
if (elementColor === 'rgba(231, 76, 60, 0.88)') { if (elementColor === 'rgba(231, 76, 60, 0.88)') {
console.log('Passed: Alert text color matched as expected'); console.log('Passed: Alert text color matched as expected');
} else { } else {
@@ -3584,7 +3585,7 @@ const steps = [
errors.push(`Expected: Forgot password link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Forgot password link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Forgot password link text color matched as expected'); console.log('Passed: Forgot password link text color matched as expected');
} else { } else {
@@ -3641,7 +3642,7 @@ const steps = [
errors.push(`Expected: Login buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Login buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Login button text background color matched as expected'); console.log('Passed: Login button text background color matched as expected');
} else { } else {
@@ -3698,7 +3699,7 @@ const steps = [
errors.push(`Expected: Dont have an account text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Dont have an account text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -black //color
if (elementColor === 'rgba(32, 32, 32, 1)') { if (elementColor === 'rgba(32, 32, 32, 1)') {
console.log('Passed: Dont have an account text color matched as expected'); console.log('Passed: Dont have an account text color matched as expected');
} else { } else {
@@ -3763,7 +3764,7 @@ const steps = [
errors.push(`Expected: Free trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Free trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Free trial button background color matched as expected'); console.log('Passed: Free trial button background color matched as expected');
} else { } else {
@@ -3795,6 +3796,10 @@ const steps = [
description: 'Verify EdGate copyright logo is present', description: 'Verify EdGate copyright logo is present',
action: async () => { action: async () => {
const expectedEdGateCopyright = await driver.wait(until.elementLocated(By.css('.logincopyright > img')), 5000).catch(() => false); const expectedEdGateCopyright = await driver.wait(until.elementLocated(By.css('.logincopyright > img')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedEdGateCopyright) { if (expectedEdGateCopyright) {
console.log('Passed: EdGate copyright logo present'); console.log('Passed: EdGate copyright logo present');
} else { } else {
@@ -3803,7 +3808,7 @@ const steps = [
} }
}, },
//NEXT ACTION - Click Forgot password link //NEXT ACTION
{ {
description: 'Click Forgot password link', description: 'Click Forgot password link',
action: async () => { action: async () => {
@@ -3825,7 +3830,7 @@ const steps = [
} }
}, },
//Recover Username textbox //Recover Username textbox (SPECIAL CASE: Placeholder validation with trigger)
{ {
description: 'Validate Recover Username textbox', description: 'Validate Recover Username textbox',
action: async () => { action: async () => {
@@ -3866,7 +3871,7 @@ const steps = [
errors.push(`Expected: Username placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username placeholder text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Username placeholder text color matched as expected'); console.log('Passed: Username placeholder text color matched as expected');
} else { } else {
@@ -3938,7 +3943,7 @@ const steps = [
errors.push(`Expected: Submit buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Submit buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Submit button text background color matched as expected'); console.log('Passed: Submit button text background color matched as expected');
} else { } else {
@@ -4003,7 +4008,7 @@ const steps = [
errors.push(`Expected: < Back to Login link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: < Back to Login link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: < Back to Login link text color matched as expected'); console.log('Passed: < Back to Login link text color matched as expected');
} else { } else {
@@ -4030,7 +4035,7 @@ const steps = [
} }
}, },
//NEXT ACTION - Click Back to Login link //NEXT ACTION
{ {
description: 'Click Back to Login link', description: 'Click Back to Login link',
action: async () => { action: async () => {
@@ -4053,11 +4058,16 @@ const steps = [
}, },
//RIGHT PANEL //RIGHT PANEL
//ExACT logo //ExACT logo
{ {
description: 'Verify ExACT logo is present', description: 'Verify ExACT logo is present',
action: async () => { action: async () => {
const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false); const expectedExactLogo = await driver.wait(until.elementLocated(By.css('.logo')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedExactLogo) { if (expectedExactLogo) {
console.log('Passed: ExACT logo present'); console.log('Passed: ExACT logo present');
} else { } else {
@@ -4072,7 +4082,7 @@ const steps = [
action: async () => { action: async () => {
const multipleChecks = 'Welcome Back!'; const multipleChecks = 'Welcome Back!';
const element = await driver.findElement(By.css('#formLogin > p')); const element = await driver.findElement(By.css('#formLogin > p'));
const elementicon = await driver.wait(until.elementLocated(By.css('p > img')), 5000).catch(() => false); const elementIcon = await driver.wait(until.elementLocated(By.css('p > img')), 5000).catch(() => false);
//Get icon, text, color, and size //Get icon, text, color, and size
const elementText = await element.getText(); const elementText = await element.getText();
@@ -4097,7 +4107,7 @@ const steps = [
errors.push(`Expected: Welcome Back text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Welcome Back text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgba(117, 117, 117, 1)') { if (elementColor === 'rgba(117, 117, 117, 1)') {
console.log('Passed: Welcome Back text color matched as expected'); console.log('Passed: Welcome Back text color matched as expected');
} else { } else {
@@ -4112,7 +4122,7 @@ const steps = [
} }
//icon //icon
if (elementicon) { if (elementIcon) {
console.log('Passed: Welcome Back Icon present'); console.log('Passed: Welcome Back Icon present');
} else { } else {
errors.push("Welcome Back Icon not found"); errors.push("Welcome Back Icon not found");
@@ -4161,7 +4171,7 @@ const steps = [
errors.push(`Expected: Login header text font "DM Serif Display", serif; Actual: ${elementFont}`); errors.push(`Expected: Login header text font "DM Serif Display", serif; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Login header text color matched as expected'); console.log('Passed: Login header text color matched as expected');
} else { } else {
@@ -4218,7 +4228,7 @@ const steps = [
errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Username label text color matched as expected'); console.log('Passed: Username label text color matched as expected');
} else { } else {
@@ -4286,7 +4296,7 @@ const steps = [
errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Username label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Username label text color matched as expected'); console.log('Passed: Username label text color matched as expected');
} else { } else {
@@ -4343,7 +4353,7 @@ const steps = [
errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Password label text color matched as expected'); console.log('Passed: Password label text color matched as expected');
} else { } else {
@@ -4411,7 +4421,7 @@ const steps = [
errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Password label text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -gray //color
if (elementColor === 'rgb(108, 117, 125)') { if (elementColor === 'rgb(108, 117, 125)') {
console.log('Passed: Password label text color matched as expected'); console.log('Passed: Password label text color matched as expected');
} else { } else {
@@ -4476,7 +4486,7 @@ const steps = [
errors.push(`Expected: Forgot password link text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Forgot password link text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -navy blue //color
if (elementColor === 'rgba(40, 39, 90, 1)') { if (elementColor === 'rgba(40, 39, 90, 1)') {
console.log('Passed: Forgot password link text color matched as expected'); console.log('Passed: Forgot password link text color matched as expected');
} else { } else {
@@ -4533,7 +4543,7 @@ const steps = [
errors.push(`Expected: Login buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Login buttonk text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -teal //color
if (elementColor === 'rgba(48, 200, 172, 1)') { if (elementColor === 'rgba(48, 200, 172, 1)') {
console.log('Passed: Login button text background color matched as expected'); console.log('Passed: Login button text background color matched as expected');
} else { } else {
@@ -4590,7 +4600,7 @@ const steps = [
errors.push(`Expected: Dont have an account text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Dont have an account text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -black //color
if (elementColor === 'rgba(32, 32, 32, 1)') { if (elementColor === 'rgba(32, 32, 32, 1)') {
console.log('Passed: Dont have an account text color matched as expected'); console.log('Passed: Dont have an account text color matched as expected');
} else { } else {
@@ -4655,7 +4665,7 @@ const steps = [
errors.push(`Expected: Free trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`); errors.push(`Expected: Free trial button text font "Poppins, sans-serif"; Actual: ${elementFont}`);
} }
//color -white //color
if (elementColor === 'rgba(255, 255, 255, 1)') { if (elementColor === 'rgba(255, 255, 255, 1)') {
console.log('Passed: Free trial button background color matched as expected'); console.log('Passed: Free trial button background color matched as expected');
} else { } else {
@@ -4687,6 +4697,10 @@ const steps = [
description: 'Verify EdGate copyright logo is present', description: 'Verify EdGate copyright logo is present',
action: async () => { action: async () => {
const expectedEdGateCopyright = await driver.wait(until.elementLocated(By.css('.logincopyright > img')), 5000).catch(() => false); const expectedEdGateCopyright = await driver.wait(until.elementLocated(By.css('.logincopyright > img')), 5000).catch(() => false);
//Track all errors
const errors = [];
if (expectedEdGateCopyright) { if (expectedEdGateCopyright) {
console.log('Passed: EdGate copyright logo present'); console.log('Passed: EdGate copyright logo present');
} else { } else {
@@ -4695,7 +4709,7 @@ const steps = [
} }
}, },
//Login and Log out //NEXT ACTION
{ {
description: 'Login and Log Out', description: 'Login and Log Out',
action: async () => { action: async () => {
@@ -4713,11 +4727,6 @@ const steps = [
await driver.findElement(By.css('.login')).click(); await driver.findElement(By.css('.login')).click();
console.log('----->| NEXT ACTION: Clicked Login button'); console.log('----->| NEXT ACTION: Clicked Login button');
//Wait for page to load completely
await driver.wait(async () => {
const readyState = await driver.executeScript('return document.readyState');
return readyState === 'complete';
}, 30000, 'ExACT Dashboard did not fully load within 30 seconds');
console.log('------------->| ExACT Dashboard |<-------------'); console.log('------------->| ExACT Dashboard |<-------------');
//Wait until the element exists in the DOM //Wait until the element exists in the DOM
@@ -4742,12 +4751,18 @@ const steps = [
errors.push(`Expected: "Correlation Dashboard"; Actual: "${elementText}"`); errors.push(`Expected: "Correlation Dashboard"; Actual: "${elementText}"`);
} }
//Wait for page to load completely //Wait for the slowest resource to complete
await driver.wait(async () => { await driver.wait(async () => {
const readyState = await driver.executeScript('return document.readyState'); const completed = await driver.executeScript(`
return readyState === 'complete'; const entries = performance.getEntriesByType('resource');
}, 30000, 'ExACT Dashboard did not fully load within 30 seconds'); return entries.some(entry =>
console.log('Passed: ExACT Dashboard loaded successfully'); entry.name.includes('content_sets.php') &&
entry.responseEnd > 0
);
`);
return completed;
}, 30000, 'My Content widget (content_sets.php) did not complete loading within 30 seconds');
console.log('Passed: My Content widget (content_sets.php) loaded successfully - Dashboard fully loaded');
await driver.findElement(By.css('#navbarDropdown > span')).click(); await driver.findElement(By.css('#navbarDropdown > span')).click();
await driver.findElement(By.linkText('Log Out')).click(); await driver.findElement(By.linkText('Log Out')).click();
@@ -4832,26 +4847,24 @@ try {
let allStepsPassed = true; let allStepsPassed = true;
const failedSteps = []; //Track failed steps
for (const step of steps) { for (const step of steps) {
const stepIndex = steps.indexOf(step) + 1; const stepIndex = steps.indexOf(step) + 1;
const timestamp = new Date().toISOString(); const timestamp = new Date().toISOString();
try { try {
//Screenshot of failed step
await step.action(); await step.action();
//Log a successful step with no screenshot
worksheet = logStep( worksheet = logStep(
worksheet, worksheet,
step.description, step.description,
'Passed', 'Passed',
stepIndex, stepIndex,
timestamp, timestamp,
null //No screenshot for passed steps null
); );
} catch (error) { } catch (error) {
//Only take screenshot if the step fails
const screenshotPath = await takeScreenshot( const screenshotPath = await takeScreenshot(
driver, driver,
stepIndex, stepIndex,
@@ -4868,17 +4881,21 @@ try {
); );
console.error(`Step ${stepIndex} FAILED: ${error.message}`); console.error(`Step ${stepIndex} FAILED: ${error.message}`);
failedSteps.push(`Step ${stepIndex}: ${step.description} - ${error.message}`); //Track failed step
testStatus = 'Failed'; testStatus = 'Failed';
allStepsPassed = false; allStepsPassed = false;
} }
} }
//Script completed
if (allStepsPassed) { if (allStepsPassed) {
console.log('PASSED: ExACT Login Page(ExACT_landingPage); All test steps completed successfully'); console.log('------------->| THE END |<-------------');
console.log('PASSED: EDGATE LANDING PAGE - ExACT Landing Page (ExACT_landingPage); All test steps completed successfully');
testStatus = 'Passed'; testStatus = 'Passed';
} else { } else {
console.log('FAILED: ExACT Login Page(ExACT_landingPage); One or more test steps failed'); console.log('------------->| THE END |<-------------');
console.log('FAILED: EDGATE LANDING PAGE - ExACT Landing Page (ExACT_landingPage); One or more test steps failed');
console.log('FAILED STEPS:');
failedSteps.forEach(step => console.error(` ✗ ${step}`));
testStatus = 'Failed'; testStatus = 'Failed';
} }
@@ -4892,7 +4909,7 @@ try {
} finally { } finally {
await driver.quit(); await driver.quit();
} }
})(); })();
} }
export default ExACT_landingPage; export default ExACT_landingPage;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff