diff --git a/alignConceptsPageResults.xlsx b/alignConceptsPageResults.xlsx
deleted file mode 100644
index 8761f43..0000000
Binary files a/alignConceptsPageResults.xlsx and /dev/null differ
diff --git a/contentPageResults.xlsx b/contentPageResults.xlsx
deleted file mode 100644
index 493eb04..0000000
Binary files a/contentPageResults.xlsx and /dev/null differ
diff --git a/dashboard.xlsx b/dashboard.xlsx
deleted file mode 100644
index b41f11a..0000000
Binary files a/dashboard.xlsx and /dev/null differ
diff --git a/dashboardMyContentResults.xlsx b/dashboardMyContentResults.xlsx
deleted file mode 100644
index ed66727..0000000
Binary files a/dashboardMyContentResults.xlsx and /dev/null differ
diff --git a/dashboardMyStandardsResults.xlsx b/dashboardMyStandardsResults.xlsx
deleted file mode 100644
index 950c831..0000000
Binary files a/dashboardMyStandardsResults.xlsx and /dev/null differ
diff --git a/dashboardSemanticStandardsComparisonResults.xlsx b/dashboardSemanticStandardsComparisonResults.xlsx
deleted file mode 100644
index 6e6eace..0000000
Binary files a/dashboardSemanticStandardsComparisonResults.xlsx and /dev/null differ
diff --git a/editItemAddConceptResults.xlsx b/editItemAddConceptResults.xlsx
deleted file mode 100644
index 029be91..0000000
Binary files a/editItemAddConceptResults.xlsx and /dev/null differ
diff --git a/editItemResults.xlsx b/editItemResults.xlsx
deleted file mode 100644
index 11b14c3..0000000
Binary files a/editItemResults.xlsx and /dev/null differ
diff --git a/frameworkFrameworkSettingsDIVResults.xlsx b/frameworkFrameworkSettingsDIVResults.xlsx
deleted file mode 100644
index 003a593..0000000
Binary files a/frameworkFrameworkSettingsDIVResults.xlsx and /dev/null differ
diff --git a/frameworkPublishFrameworkDIVResults.xlsx b/frameworkPublishFrameworkDIVResults.xlsx
deleted file mode 100644
index ed2935e..0000000
Binary files a/frameworkPublishFrameworkDIVResults.xlsx and /dev/null differ
diff --git a/loginResults.xlsx b/loginResults.xlsx
deleted file mode 100644
index 2eb03f4..0000000
Binary files a/loginResults.xlsx and /dev/null differ
diff --git a/myStandardsSearchRelatedStandardsResults.xlsx b/myStandardsSearchRelatedStandardsResults.xlsx
deleted file mode 100644
index c1575ad..0000000
Binary files a/myStandardsSearchRelatedStandardsResults.xlsx and /dev/null differ
diff --git a/results/activityReportResults.xlsx b/results/activityReportResults.xlsx
deleted file mode 100644
index 9fa29ab..0000000
Binary files a/results/activityReportResults.xlsx and /dev/null differ
diff --git a/results/alignAutoAlignPageResults.xlsx b/results/alignAutoAlignPageResults.xlsx
deleted file mode 100644
index f802be5..0000000
Binary files a/results/alignAutoAlignPageResults.xlsx and /dev/null differ
diff --git a/results/alignContentPageResults.xlsx b/results/alignContentPageResults.xlsx
deleted file mode 100644
index baf55d3..0000000
Binary files a/results/alignContentPageResults.xlsx and /dev/null differ
diff --git a/results/alignStandardsPageResults.xlsx b/results/alignStandardsPageResults.xlsx
deleted file mode 100644
index 6b6b800..0000000
Binary files a/results/alignStandardsPageResults.xlsx and /dev/null differ
diff --git a/results/approveApprovalHistoryPageResults.xlsx b/results/approveApprovalHistoryPageResults.xlsx
deleted file mode 100644
index db5fd55..0000000
Binary files a/results/approveApprovalHistoryPageResults.xlsx and /dev/null differ
diff --git a/results/approveContentSubmissionsPageResults.xlsx b/results/approveContentSubmissionsPageResults.xlsx
deleted file mode 100644
index 97ffab0..0000000
Binary files a/results/approveContentSubmissionsPageResults.xlsx and /dev/null differ
diff --git a/results/approvePageResults.xlsx b/results/approvePageResults.xlsx
deleted file mode 100644
index dfe9a30..0000000
Binary files a/results/approvePageResults.xlsx and /dev/null differ
diff --git a/results/approvePendingAlignmentsPageResults.xlsx b/results/approvePendingAlignmentsPageResults.xlsx
deleted file mode 100644
index cb058af..0000000
Binary files a/results/approvePendingAlignmentsPageResults.xlsx and /dev/null differ
diff --git a/results/approveRejectionHistoryPageResults.xlsx b/results/approveRejectionHistoryPageResults.xlsx
deleted file mode 100644
index d67e4aa..0000000
Binary files a/results/approveRejectionHistoryPageResults.xlsx and /dev/null differ
diff --git a/results/exactLandingPageResults.xlsx b/results/exactLandingPageResults.xlsx
deleted file mode 100644
index 553bb80..0000000
Binary files a/results/exactLandingPageResults.xlsx and /dev/null differ
diff --git a/results/frameworkManagementPageResults.xlsx b/results/frameworkManagementPageResults.xlsx
deleted file mode 100644
index 7c5c5e6..0000000
Binary files a/results/frameworkManagementPageResults.xlsx and /dev/null differ
diff --git a/results/reportBuildYourReportPageResults.xlsx b/results/reportBuildYourReportPageResults.xlsx
deleted file mode 100644
index 94758fb..0000000
Binary files a/results/reportBuildYourReportPageResults.xlsx and /dev/null differ
diff --git a/results/reportSpecialtyReportsPageResults.xlsx b/results/reportSpecialtyReportsPageResults.xlsx
deleted file mode 100644
index 6192630..0000000
Binary files a/results/reportSpecialtyReportsPageResults.xlsx and /dev/null differ
diff --git a/results/reportViewQueuedReportsPageResults.xlsx b/results/reportViewQueuedReportsPageResults.xlsx
deleted file mode 100644
index 0c1a1f4..0000000
Binary files a/results/reportViewQueuedReportsPageResults.xlsx and /dev/null differ
diff --git a/results/uploadImportAlignmentsPageResults.xlsx b/results/uploadImportAlignmentsPageResults.xlsx
deleted file mode 100644
index e5fa5c6..0000000
Binary files a/results/uploadImportAlignmentsPageResults.xlsx and /dev/null differ
diff --git a/results/uploadSubmitAResourcePageResults.xlsx b/results/uploadSubmitAResourcePageResults.xlsx
deleted file mode 100644
index 4206a92..0000000
Binary files a/results/uploadSubmitAResourcePageResults.xlsx and /dev/null differ
diff --git a/tests/ActivityReport/ActivityReportPage.js b/tests/ActivityReport/ActivityReportPage.js
index 3870ac5..39174a5 100644
--- a/tests/ActivityReport/ActivityReportPage.js
+++ b/tests/ActivityReport/ActivityReportPage.js
@@ -934,7 +934,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'activityReportPageResults.xlsx');
+const resultsFile = path.join('results', 'activityReportPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Align/alignAutoAlignPage.js b/tests/Align/alignAutoAlignPage.js
index ce0544a..37aacbe 100644
--- a/tests/Align/alignAutoAlignPage.js
+++ b/tests/Align/alignAutoAlignPage.js
@@ -2238,7 +2238,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'alignAutoAlignPageResults.xlsx');
+const resultsFile = path.join('results', 'alignAutoAlignPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Align/alignContentPage.js b/tests/Align/alignContentPage.js
index 107a675..d9cefcc 100644
--- a/tests/Align/alignContentPage.js
+++ b/tests/Align/alignContentPage.js
@@ -1389,7 +1389,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'alignContentPageResults.xlsx');
+const resultsFile = path.join('results', 'alignContentPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Align/alignStandardsPage.js b/tests/Align/alignStandardsPage.js
index 4ee7a87..2bd2f00 100644
--- a/tests/Align/alignStandardsPage.js
+++ b/tests/Align/alignStandardsPage.js
@@ -1882,7 +1882,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'alignStandardsPageResults.xlsx');
+const resultsFile = path.join('results', 'alignStandardsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Approve/approveApprovalHistoryPage.js b/tests/Approve/approveApprovalHistoryPage.js
index 4dbe657..8766fe2 100644
--- a/tests/Approve/approveApprovalHistoryPage.js
+++ b/tests/Approve/approveApprovalHistoryPage.js
@@ -1436,7 +1436,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'approveApprovalHistoryPageResults.xlsx');
+const resultsFile = path.join('results', 'approveApprovalHistoryPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Approve/approveContentSubmissionsPage.js b/tests/Approve/approveContentSubmissionsPage.js
index 07afb0c..2cd6ad3 100644
--- a/tests/Approve/approveContentSubmissionsPage.js
+++ b/tests/Approve/approveContentSubmissionsPage.js
@@ -1436,7 +1436,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'approveContentSubmissionsPageResults.xlsx');
+const resultsFile = path.join('results', 'approveContentSubmissionsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Approve/approvePendingAlignmentsPage.js b/tests/Approve/approvePendingAlignmentsPage.js
index c61007b..08c7c4a 100644
--- a/tests/Approve/approvePendingAlignmentsPage.js
+++ b/tests/Approve/approvePendingAlignmentsPage.js
@@ -1054,7 +1054,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'approvePendingAlignmentsPageResults.xlsx');
+const resultsFile = path.join('results', 'approvePendingAlignmentsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Approve/approveRejectionHistoryPage.js b/tests/Approve/approveRejectionHistoryPage.js
index aba9779..a975f0a 100644
--- a/tests/Approve/approveRejectionHistoryPage.js
+++ b/tests/Approve/approveRejectionHistoryPage.js
@@ -1436,7 +1436,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'approveRejectionHistoryPageResults.xlsx');
+const resultsFile = path.join('results', 'approveRejectionHistoryPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Frameworks/frameworkManagementPage.js b/tests/Frameworks/frameworkManagementPage.js
index 342016e..c09306a 100644
--- a/tests/Frameworks/frameworkManagementPage.js
+++ b/tests/Frameworks/frameworkManagementPage.js
@@ -2614,7 +2614,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'frameworkManagementPageResults.xlsx');
+const resultsFile = path.join('results', 'frameworkManagementPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Report/reportBuildYourReportPage.js b/tests/Report/reportBuildYourReportPage.js
index 229e640..d5bb1a7 100644
--- a/tests/Report/reportBuildYourReportPage.js
+++ b/tests/Report/reportBuildYourReportPage.js
@@ -1637,7 +1637,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'reportBuildYourReportPageResults.xlsx');
+const resultsFile = path.join('results', 'reportBuildYourReportPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Report/reportSpecialtyReportsPage.js b/tests/Report/reportSpecialtyReportsPage.js
index 530eace..a3cdd83 100644
--- a/tests/Report/reportSpecialtyReportsPage.js
+++ b/tests/Report/reportSpecialtyReportsPage.js
@@ -1203,7 +1203,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'reportSpecialtyReportsPageResults.xlsx');
+const resultsFile = path.join('results', 'reportSpecialtyReportsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Report/reportViewQueuedReportsPage.js b/tests/Report/reportViewQueuedReportsPage.js
index b576154..1feca21 100644
--- a/tests/Report/reportViewQueuedReportsPage.js
+++ b/tests/Report/reportViewQueuedReportsPage.js
@@ -1605,7 +1605,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'reportViewQueuedReportsPageResults.xlsx');
+const resultsFile = path.join('results', 'reportViewQueuedReportsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Upload/uploadBatchUpload.js b/tests/Upload/uploadBatchUpload.js
index ae7e3db..99fc29b 100644
--- a/tests/Upload/uploadBatchUpload.js
+++ b/tests/Upload/uploadBatchUpload.js
@@ -1416,7 +1416,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'uploadBatchUploadPageResults.xlsx');
+const resultsFile = path.join('results', 'uploadBatchUploadPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Upload/uploadImportAlignmentsPage.js b/tests/Upload/uploadImportAlignmentsPage.js
index 4f695d7..9d2d374 100644
--- a/tests/Upload/uploadImportAlignmentsPage.js
+++ b/tests/Upload/uploadImportAlignmentsPage.js
@@ -1429,7 +1429,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'uploadImportAlignmentsPageResults.xlsx');
+const resultsFile = path.join('results', 'uploadImportAlignmentsPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/Upload/uploadSubmitAResourcePage.js b/tests/Upload/uploadSubmitAResourcePage.js
index 56a48b9..b16e200 100644
--- a/tests/Upload/uploadSubmitAResourcePage.js
+++ b/tests/Upload/uploadSubmitAResourcePage.js
@@ -872,7 +872,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'uploadSubmitAResourcePageResults.xlsx');
+const resultsFile = path.join('results', 'uploadSubmitAResourcePage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/dashboardMyStandards.js b/tests/dashboardMyStandards.js
deleted file mode 100644
index 8bfa960..0000000
--- a/tests/dashboardMyStandards.js
+++ /dev/null
@@ -1,8021 +0,0 @@
-import { Builder, By, Key, until, Select, Browser } from 'selenium-webdriver';
-import { Options as ChromeOptions } from 'selenium-webdriver/chrome.js';
-import fs from 'fs';
-import XLSX from 'xlsx';
-import path from 'path';
-import { myStandardsSearch_AlignedContent } from './myStandardsSearchAlignedContent.js';
-
-const dashboardMyStandards = (req, res) => {
- res.send('
ExACT Automated Test Script: DASHBOARD - My Standards Widget(dashboardMyStandards) | Initiated
');
- (async function example() {
- let driver = await new Builder()
- .forBrowser('chrome')
- .setChromeOptions(
- new ChromeOptions()
- .addArguments('--disable-features=MediaRouter')
- .addArguments('--disable-extensions')
- .addArguments('--disable-background-networking')
- .addArguments('--log-level=3')
- )
- .build();
- let testStatus = 'Failed';
- let workbook;
- let worksheet;
- const startTime = new Date().toISOString();
-
-const steps = [
- { description: 'Navigate to ExACT Landing Page', action: async () => await driver.navigate().to('https://correlation.edgate.com/exact/login.php') },
- { description: 'Expand browser', action: async () => await driver.manage().window().maximize() },
-
- //Login
- {
- description: 'Login',
- action: async () => {
- const multipleChecks = 'Log In';
- console.log('------------->| MY STANDARDS WIDGET |<-------------');
- const errors = [];
-
- await driver.findElement(By.css('.form-control:nth-child(2)')).sendKeys('exact_juan');
- await driver.findElement(By.css('.passfield')).sendKeys('Edgate1!');
- await driver.findElement(By.css('.login')).click();
- console.log('----->| NEXT ACTION: Entered credentials and logged in');
-
- //Wait for page readyState
- 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');
-
- //Wait for the dashboard container to exist in DOM
- await driver.wait(
- until.elementLocated(By.css('.gap-idle-wrap > img')),
- 30000,
- 'Dashboard image did not appear within 30 seconds'
- );
-
- //Wait for it to be visible
- await driver.wait(async () => {
- try {
- const img = await driver.findElement(By.css('.gap-idle-wrap > img'));
- return await img.isDisplayed();
- } catch (e) {
- return false;
- }
- }, 30000, 'Dashboard image did not become visible within 30 seconds');
-
- //Wait for any loading spinners to disappear
- await driver.wait(async () => {
- try {
- const spinners = await driver.findElements(By.css('.spinner-border'));
- for (const spinner of spinners) {
- if (await spinner.isDisplayed()) return false;
- }
- return true;
- } catch (e) {
- return true;
- }
- }, 30000, 'Loading spinners did not disappear within 30 seconds');
-
- //Wait for the slowest resource to complete
- await driver.wait(async () => {
- const completed = await driver.executeScript(`
- const entries = performance.getEntriesByType('resource');
- return entries.some(entry =>
- 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');
-
- //Final sleep to allow any remaining dynamic content to settle
- await driver.sleep(2000);
-
- console.log('Passed: ExACT Dashboard loaded successfully');
-
- if (errors.length > 0) {
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard title
- {
- description: 'Validate dashboard title text, size, and color',
- action: async () => {
- const multipleChecks = 'Dashboard title';
- const element = await driver.findElement(By.css('.e-heading'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Correlation Dashboard') {
- console.log('Passed: Dashboard title text matched as expected');
- } else {
- errors.push(`Expected: "Correlation Dashboard"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === `"DM Serif Display", serif`) {
- console.log('Passed: Dashboard title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard title font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '32px') {
- console.log('Passed: Dashboard title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard title text font-size "32px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard title text color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //MY STANDARDS WIDGET
- //Dashboard - My Standards Widget title (active)
- {
- description: 'Validate Dashboard Semantic Standards Comparison Widget title text, color, and size',
- action: async () => {
- const multipleChecks = 'My Standards Widget title (active)';
- const element = await driver.findElement(By.css('#mystd-tab'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'My Standards') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Semantic Standards Comparison"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === `Poppins, sans-serif`) {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Stndards tab title
- {
- description: 'Validate Dashboard - Other Available Stndards tab title text, color, and size',
- action: async () => {
- const multipleChecks = 'Other Available Stndards tab title';
- const element = await driver.findElement(By.css('#availstd-tab'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Other Available Standards') {
- console.log('Passed: Dashboard - Other Available Standards tab title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Other Available Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === `Poppins, sans-serif`) {
- console.log('Passed: Dashboard - Other Available Standards tab title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Other Available Standards tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(182, 186, 181, 1)') {
- console.log('Passed: Dashboard - Other Available Standards tab title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text color "rgba(182, 186, 181, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards dropdown
- {
- description: 'Validate Dashboard - My Standards dropdown list and value',
- action: async () => {
- const multipleChecks = 'My Standards dropdown list';
- const elementDropdown = await driver.findElement(By.css('#stdparent'));
- const selectedOption = await elementDropdown.findElement(By.css('option:checked'));
-
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'United States Standards') {
- console.log('Passed: Dashboard - My Standards dropdown text matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - My Standards: "United States Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards dropdown font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Dashboard - My Standards dropdown font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - My Standards dropdown color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expected = [
- 'ACTFL',
- 'Australia',
- 'California',
- 'Canada',
- 'Common Core Standards',
- 'Creating Org',
- 'Demo Client Standards',
- 'Demo Standards',
- 'New Folder',
- 'QA Client Test Frameworks',
- 'United States Standards',
- 'WIDA'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expected)) {
- console.log('Passed: Dashboard - My Standards Dropdown list matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - My Standards Dropdown list: ${JSON.stringify(expected)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Organization column title
- {
- description: 'Validate Dashboard - My Standards Organization column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Organization column title'
- const element = await driver.findElement(By.css('.table:nth-child(2) th:nth-child(1)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Organization') {
- console.log('Passed: Dashboard - My Standards Organization column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Organization" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Organization column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Organization column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Organization column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Export column title
- {
- description: 'Validate Dashboard - My Standards Export column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Export column title';
- const element = await driver.findElement(By.css('.table:nth-child(2) > thead .text-center:nth-child(2)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Export') {
- console.log('Passed: Dashboard - My Standards Export column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Export" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Export column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Export column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Export column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Manage column title
- {
- description: 'Validate Dashboard - My Standards Manage column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Manage column title';
- const element = await driver.findElement(By.css('.text-center:nth-child(3)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Manage') {
- console.log('Passed: Dashboard - My Standards Manage column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Manage" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Manage column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Manage column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Manage column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards More Info column title
- {
- description: 'Validate Dashboard - My Standards More Info column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards More Info column title';
- const element = await driver.findElement(By.css('.table-sm > thead .text-center:nth-child(4)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'More Info') {
- console.log('Passed: Dashboard - My Standards More Info column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "More Info" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards More Info column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards More Info column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards More Info column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards View column title
- {
- description: 'Validate Dashboard - My Standards View column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards View column title';
- const element = await driver.findElement(By.css('thead .text-center:nth-child(5)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'View') {
- console.log('Passed: Dashboard - My Standards View column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "View" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards View column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards View column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards View column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Alabama
- {
- description: 'Validate Dashboard - My Standards Organization = Alabama Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Alabama';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(1) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Alabama') {
- console.log("Passed: Dashboard - My Standards Alabama text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Alabama"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Alabama text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Alabama text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Alabama text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Alabama - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Alabama - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Alabama icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Alabama: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Alabama - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Alabama - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Arizona
- {
- description: 'Validate Dashboard - My Standards Organization = Arizona Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Arizona';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(2) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Arizona') {
- console.log("Passed: Dashboard - My Standards Arizona text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Arizona"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Arizona text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Arizona text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Arizona text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Arizona - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Arizona - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Arizona icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Arizona: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Arizona - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Arizona - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = California
- {
- description: 'Validate Dashboard - My Standards Organization = California Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - California';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(3) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'California') {
- console.log("Passed: Dashboard - My Standards California text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "California"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards California text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards California text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards California text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards California - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards California - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards California icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards California: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards California - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards California - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Florida
- {
- description: 'Validate Dashboard - My Standards Organization = Florida Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Florida';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(4) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Florida') {
- console.log("Passed: Dashboard - My Standards Florida text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Florida"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Florida text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Florida text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Florida text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Florida - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Florida - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Florida icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Florida: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Florida - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Florida - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Georgia
- {
- description: 'Validate Dashboard - My Standards Organization = Georgia Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Georgia';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(5) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(5) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(5) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(5) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Georgia') {
- console.log("Passed: Dashboard - My Standards Georgia text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Georgia"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Georgia text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Georgia text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Georgia text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Georgia text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Georgia text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Georgia text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Georgia - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Georgia - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Georgia icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Georgia: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Georgia - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Georgia - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Illinois
- {
- description: 'Validate Dashboard - My Standards Organization = Illinois Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Illinois';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(6) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(6) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(6) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(6) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Illinois') {
- console.log("Passed: Dashboard - My Standards Illinois text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Illinois"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Illinois text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Illinois text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Illinois text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Illinois text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Illinois text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Illinois text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Illinois - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Illinois - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Illinois icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Illinois: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Illinois - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Illinois - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = New York
- {
- description: 'Validate Dashboard - My Standards Organization = New York Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - New York';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(7) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(7) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(7) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(7) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'New York') {
- console.log("Passed: Dashboard - My Standards New York text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "New York"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards New York text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards New York text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards New York text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards New York text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards New York text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards New York text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards New York - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards New York - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards New York icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards New York: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards New York - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards New York - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Texas
- {
- description: 'Validate Dashboard - My Standards Organization = Texas Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Texas';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(8) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(8) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(8) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(8) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Texas') {
- console.log("Passed: Dashboard - My Standards Texas text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Texas"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Texas text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Texas text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Texas text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Texas text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Texas text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Texas text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Texas - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Texas - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Texas icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Texas: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Texas - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Texas - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Washington
- {
- description: 'Validate Dashboard - My Standards Organization = Washington Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Washington';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(9) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(9) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(9) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(9) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Washington') {
- console.log("Passed: Dashboard - My Standards Washington text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Washington"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Washington text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Washington text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Washington text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Washington text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Washington text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Washington text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Washington - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Washington - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Washington icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Washington: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Washington - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Washington - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click Other Available Standards tab',
- action: async () => {
- await driver.findElement(By.css('#availstd-tab')).click();
- console.log('----->| NEXT ACTION: Clicked Other Available Standards tab');
-
- //Wait until the element exists in the DOM
- const instructionText = await driver.wait(
- until.elementLocated(By.css('p:nth-child(1)')),
- 30000
- );
-
- //Wait until it becomes visible
- await driver.wait(
- until.elementIsVisible(instructionText),
- 30000
- );
- }
- },
-
- //Dashboard - My Standards Widget title
- {
- description: 'Validate Dashboard Semantic Standards Comparison Widget title text, color, and size',
- action: async () => {
- const multipleChecks = 'Dashboard Semantic Standards Comparison Widget title';
- const element = await driver.findElement(By.css('#mystd-tab'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'My Standards') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Semantic Standards Comparison"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(182, 186, 181, 1)') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text color "rgba(182, 186, 181, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Stndards tab title (active)
- {
- description: 'Validate Dashboard - Other Available Stndards tab title text, color, and size',
- action: async () => {
- const multipleChecks = 'Other Available Stndards tab title';
- const element = await driver.findElement(By.css('#availstd-tab'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Other Available Standards') {
- console.log('Passed: Dashboard - Other Available Standards tab title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Other Available Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards tab title text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Other Available Standards tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - Other Available Standards tab title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Stndards tab title
- {
- description: 'Validate Dashboard - Other Available Stndards tab title text, color, and size',
- action: async () => {
- const multipleChecks = 'Other Available Stndards tab title';
- const element = await driver.findElement(By.css('p:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'The following standards are also available to clients. If you would like access to any of these standards sets, please Contact Us.') {
- console.log('Passed: Dashboard - Other Available Standards description text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "The following standards are also available to clients. If you would like access to any of these standards sets, please Contact Us."; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards description text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards description text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Dashboard - Other Available Standards tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - Other Available Standards tab title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards dropdown
- {
- description: 'Validate Dashboard - Other Available Standards dropdown list and value',
- action: async () => {
- const multipleChecks = 'Other Available Standards';
- const elementDropdown = await driver.findElement(By.css('#defstdparent'));
- const selectedOption = await elementDropdown.findElement(By.css('option:checked'));
-
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'United States Standards') {
- console.log('Passed: Dashboard - Other Available Standards dropdown value matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - Other Available Standards dropdown value - "United States Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards dropdown value font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards dropdown value font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Dashboard - Other Available Standards dropdown value font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards dropdown value font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - Other Available Standards dropdown value color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards dropdown value color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expected = [
- 'ACT',
- 'ACTFL',
- 'AQA',
- 'Australia',
- 'Brazil',
- 'Cambridge IGCSE',
- 'Cambridge International AS & A Level',
- 'Cambridge Secondary',
- 'Canada',
- 'Common Core Standards',
- 'Edexcel',
- 'England',
- 'Finland',
- 'India',
- 'India NCERT (Archived)',
- 'International Standards',
- 'Ireland (Archived)',
- 'Mexico',
- 'National Standards',
- 'New Zealand',
- 'OCR',
- 'Puerto Rico 2014',
- 'Saudi Arabia',
- 'Supplemental Standards',
- 'Taiwan (Additional)',
- 'Thailand (Additional)',
- 'United Arab Emirates',
- 'United States Standards'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expected)) {
- console.log('Passed: Dashboard - Other Available Standards dropdown list matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - Other Available Standards dropdown list: ${JSON.stringify(expected)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards Organization column title
- {
- description: 'Validate Dashboard - Other Available Standards Organization column title, text, and font size',
- action: async () => {
- const multiple = 'Other Available Standards Organization column title';
- const element = await driver.findElement(By.css('.table:nth-child(3) th:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Organization') {
- console.log('Passed: Dashboard - Other Available Standards Organization column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Organization" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Organization column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Organization column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - Other Available Standards Organization column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Organization column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Organization column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Organization column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Organization column title
- {
- description: 'Validate Dashboard - Other Available Standards More Info column title, text, and font size',
- action: async () => {
- const multipleChecks = 'Other Available Organization column title';
- const element = await driver.findElement(By.css('.table:nth-child(3) > thead .text-center'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'More Info') {
- console.log('Passed: Dashboard - Other Available Standards More Info column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "More Info" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards More Info column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards More Info column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - Other Available Standards More Info column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards More Info column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - Other Available Standards More Info column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards More Info column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards - Alaska
- {
- description: 'Validate Dashboard - Other Available Standards - Alaska',
- action: async () => {
- const multipleChecks = 'Other Available Standards - Alaska';
- const element = await driver.findElement(By.css('#defstdbody > tr:nth-child(1) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#defstdbody > tr:nth-child(1) > td.text-center > a')).getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Alaska') {
- console.log('Passed: Dashboard - Other Available Standards Alaska column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Alaska" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Alaska column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Alaska column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - Other Available Standards Alaska column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Alaska column title text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Alaska column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Alaska column title text color "rgba(33, 37, 41, 1)"'; Actual: "${elementColor}"`);
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - Other Available Standards Alaska icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Alaska: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards - Arkansas
- {
- description: 'Validate Dashboard - Other Available Standards - Arkansas',
- action: async () => {
- const multipleChecks = 'Other Available Standards - Arkansas';
- const element = await driver.findElement(By.css('#defstdbody > tr:nth-child(2) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#defstdbody > tr:nth-child(2) > td.text-center > a')).getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Arkansas') {
- console.log('Passed: Dashboard - Other Available Standards Arkansas column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Arkansas" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Arkansas column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Arkansas column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - Other Available Standards Arkansas column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Arkansas column title text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Arkansas column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Arkansas column title text color "rgba(33, 37, 41, 1)"'; Actual: "${elementColor}"`);
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - Other Available Standards Arkansas icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Arkansas: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards - Colorado
- {
- description: 'Validate Dashboard - Other Available Standards - Colorado',
- action: async () => {
- const multipleChecks = 'Other Available Standards - Colorado';
- const element = await driver.findElement(By.css('#defstdbody > tr:nth-child(3) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#defstdbody > tr:nth-child(3) > td.text-center > a')).getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Colorado') {
- console.log('Passed: Dashboard - Other Available Standards Colorado column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Colorado" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Colorado column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Colorado column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - Other Available Standards Colorado column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Colorado column title text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Colorado column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Colorado column title text color "rgba(33, 37, 41, 1)"'; Actual: "${elementColor}"`);
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - Other Available Standards Colorado icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Colorado: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards - Connecticut
- {
- description: 'Validate Dashboard - Other Available Standards - Connecticut',
- action: async () => {
- const multipleChecks = 'Other Available Standards - Connecticut';
- const element = await driver.findElement(By.css('#defstdbody > tr:nth-child(4) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#defstdbody > tr:nth-child(4) > td.text-center > a')).getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Connecticut') {
- console.log('Passed: Dashboard - Other Available Standards Connecticut column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Connecticut" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Connecticut column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Connecticut column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - Other Available Standards Connecticut column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Connecticut column title text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Connecticut column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Connecticut column title text color "rgba(33, 37, 41, 1)"'; Actual: "${elementColor}"`);
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - Other Available Standards Connecticut icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Connecticut: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Standards - Delaware
- {
- description: 'Validate Dashboard - Other Available Standards - Delaware',
- action: async () => {
- const multipleChecks = 'Other Available Standards - Delaware';
- const element = await driver.findElement(By.css('#defstdbody > tr:nth-child(5) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#defstdbody > tr:nth-child(5) > td.text-center > a')).getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Delaware') {
- console.log('Passed: Dashboard - Other Available Standards Delaware column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards "Delaware" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards Delaware column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Delaware column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - Other Available Standards Delaware column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Delaware column title text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - Other Available Standards Delaware icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Delaware: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - Other Available Standards Delaware column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards Delaware column title text color "rgba(33, 37, 41, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click My Standards tab',
- action: async () => {
- await driver.findElement(By.css('#mystd-tab')).click();
- console.log('----->| NEXT ACTION: Clicked My Standards tab');
-
- //Wait until the element exists in the DOM
- const myStandardsDropdown = await driver.wait(
- until.elementLocated(By.css('#stdparent')),
- 30000
- );
-
- //Wait until it becomes visible
- await driver.wait(
- until.elementIsVisible(myStandardsDropdown),
- 30000
- );
- }
- },
-
- //Dashboard - My Standards Widget title (active)
- {
- description: 'Validate Dashboard Semantic Standards Comparison Widget title text, color, and size',
- action: async () => {
- const multipleChecks = 'My Standards Widget title (active)';
- const element = await driver.findElement(By.css('#mystd-tab'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'My Standards') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Semantic Standards Comparison"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - Semantic Standards Comparison Widget title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Semantic Standards Comparison Widget title text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - Other Available Stndards tab title
- {
- description: 'Validate Dashboard - Other Available Stndards tab title text, color, and size',
- action: async () => {
- const multipleChecks = 'Other Available Stndards tab title';
- const element = await driver.findElement(By.css('#availstd-tab'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Other Available Standards') {
- console.log('Passed: Dashboard - Other Available Standards tab title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - "Other Available Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - Other Available Standards tab title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: Dashboard - Other Available Standards tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(182, 186, 181, 1)') {
- console.log('Passed: Dashboard - Other Available Standards tab title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - Other Available Standards tab title text color "rgba(182, 186, 181, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards dropdown
- {
- description: 'Validate Dashboard - My Standards dropdown list and value',
- action: async () => {
- const multipleChecks = 'My Standards dropdown list';
- const elementDropdown = await driver.findElement(By.css('#stdparent'));
- const selectedOption = await elementDropdown.findElement(By.css('option:checked'));
-
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'United States Standards') {
- console.log('Passed: Dashboard - My Standards dropdown text matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - My Standards: "United States Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards dropdown font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Dashboard - My Standards dropdown font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Dashboard - My Standards dropdown color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards dropdown color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expected = [
- 'ACTFL',
- 'Australia',
- 'California',
- 'Canada',
- 'Common Core Standards',
- 'Creating Org',
- 'Demo Client Standards',
- 'Demo Standards',
- 'New Folder',
- 'QA Client Test Frameworks',
- 'United States Standards',
- 'WIDA'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expected)) {
- console.log('Passed: Dashboard - My Standards Dropdown list matched as expected');
- } else {
- throw new Error(`Expected: Dashboard - My Standards Dropdown list: ${JSON.stringify(expected)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Organization column title
- {
- description: 'Validate Dashboard - My Standards Organization column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Organization column title'
- const element = await driver.findElement(By.css('.table:nth-child(2) th:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Organization') {
- console.log('Passed: Dashboard - My Standards Organization column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Organization" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Organization column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Organization column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Organization column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Organization column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Export column title
- {
- description: 'Validate Dashboard - My Standards Export column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Export column title';
- const element = await driver.findElement(By.css('.table:nth-child(2) > thead .text-center:nth-child(2)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Export') {
- console.log('Passed: Dashboard - My Standards Export column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Export" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Export column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Export column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Export column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Export column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards Manage column title
- {
- description: 'Validate Dashboard - My Standards Manage column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards Manage column title';
- const element = await driver.findElement(By.css('.text-center:nth-child(3)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Manage') {
- console.log('Passed: Dashboard - My Standards Manage column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "Manage" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Manage column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards Manage column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards Manage column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Manage column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards More Info column title,
- {
- description: 'Validate Dashboard - My Standards More Info column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards More Info column title';
- const element = await driver.findElement(By.css('.table-sm > thead .text-center:nth-child(4)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'More Info') {
- console.log('Passed: Dashboard - My Standards More Info column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "More Info" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards More Info column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards More Info column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards More Info column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards More Info column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards View column title
- {
- description: 'Validate Dashboard - My Standards View column title, text, and font size',
- action: async () => {
- const multipleChecks = 'My Standards View column title';
- const element = await driver.findElement(By.css('thead .text-center:nth-child(5)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'View') {
- console.log('Passed: Dashboard - My Standards View column title matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards "View" column title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards View column title font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: Dashboard - My Standards View column title text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: Dashboard - My Standards View column title text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards View column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Alabama
- {
- description: 'Validate Dashboard - My Standards Organization = Alabama Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Alabama';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(1) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(1) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Alabama') {
- console.log("Passed: Dashboard - My Standards Alabama text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Alabama"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Alabama text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Alabama text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Alabama text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Alabama text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Alabama - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Alabama - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Alabama icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Alabama: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Alabama - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Alabama - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Arizona
- {
- description: 'Validate Dashboard - My Standards Organization = Arizona Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Arizona';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(2) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(2) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Arizona') {
- console.log("Passed: Dashboard - My Standards Arizona text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Arizona"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Arizona text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Arizona text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Arizona text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Arizona text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Arizona - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Arizona - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Arizona icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Arizona: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Arizona - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Arizona - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = California
- {
- description: 'Validate Dashboard - My Standards Organization = California Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - California';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(3) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(3) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'California') {
- console.log("Passed: Dashboard - My Standards California text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "California"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards California text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards California text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards California text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards California text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards California - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards California - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards California icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards California: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards California - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards California - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Dashboard - My Standards = Florida
- {
- description: 'Validate Dashboard - My Standards Organization = Florida Standards text',
- action: async () => {
- const multipleChecks = 'My Standards Organization - Florida';
- const element = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > td:nth-child(1)'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- const elementExportIcon = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > .text-center:nth-child(2) img'));
- const elementMoreInfoIconTooltip = await driver.findElement(By.css('#stdbody > tr:nth-child(4) > td:nth-child(4) > a')).getAttribute('title');
- const elementViewIcon = await driver.findElement(By.css('tr:nth-child(4) > .text-center:nth-child(5) img'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Florida') {
- console.log("Passed: Dashboard - My Standards Florida text matched as expected");
- } else {
- throw new Error(`Expected: Dashboard - My Standards text: "Florida"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: Dashboard - My Standards Florida text font-family matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14.3px') {
- console.log('Passed: Dashboard - My Standards Florida text font-size matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text font-size "14.3px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Dashboard - My Standards Florida text color matched as expected');
- } else {
- errors.push(`Expected: Dashboard - My Standards Florida text color: "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //export icon
- if (elementExportIcon) {
- console.log('Passed: Dashboard - My Standards Florida - Export icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Florida - Export icon not found');
- }
-
- //more info icon tool-tip
- if (elementMoreInfoIconTooltip === 'View Detail Information') {
- console.log('Passed: Dashboard - My Standards Florida icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: ashboard - My Standards Florida: "View Detail Information"; Actual: "${elementMoreInfoIconTooltip}"`);
- }
-
- //view icon
- if (elementViewIcon) {
- console.log('Passed: Dashboard - My Standards Florida - View icon is present');
- } else {
- errors.push('Expected: Dashboard - My Standards Florida - View icon not found');
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click Alabama Export icon',
- action: async () => {
- await driver.findElement(By.css('#stdbody > tr:nth-child(1) > .text-center:nth-child(2) img')).click();
- console.log('----->| NEXT ACTION: Clicked Alabama Export icon');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.css('.modal-lg .modal-title'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Modal did not become visible within 20 seconds');
-
- console.log('Passed: DIV - Loaded successfully');
- }
- },
-
- //EXPORT STANDARD DIV
- //DIV - Export Standards title
- {
- description: 'Validate DIV - Export Standards title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Export Standards title';
- const element = await driver.findElement(By.css('.modal-lg .modal-title'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Export Standards') {
- console.log('Passed: DIV - Export Standards title matched as expected');
- } else {
- errors.push(`Expected: DIV - "Export Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Export Standards title text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Export Standards title text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '18px') {
- console.log('Passed: DIV - Export Standards title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Export Standards title text font-size "18px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Export Standards title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Export Standards title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Alabama sub-title
- {
- description: 'Validate DIV - Alabama sub-title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama sub-title';
- const element = await driver.findElement(By.css('p > b'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Alabama') {
- console.log('Passed: DIV - Alabama sub-title matched as expected');
- } else {
- errors.push(`Expected: DIV - sub-title "Alabama"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Alabama sub-title text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama sub-title text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: DIV - Alabama sub-title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama sub-title text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Alabama sub-title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama sub-title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Alabama Standards Subject label
- {
- description: 'Validate DIV - Alabama Standards Subject label text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Standards Subject label';
- const element = await driver.findElement(By.css('.form-row:nth-child(2) > .form-group:nth-child(1) > label'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Subject') {
- console.log('Passed: DIV - Alabama Standards Subject label matched as expected');
- } else {
- errors.push(`Expected: DIV - "Subject" label; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Alabama Standards Subject label text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Subject label text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: DIV - Alabama Standards Subject label text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Subject label text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Alabama Standards Subject label text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Subject label text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Subject dropdown {custom-select}
- {
- description: 'Validate DIV - Subject dropdown list and value',
- action: async () => {
- const multipleChecks = 'DIV - Subject dropdown';
- const elementDropdown = await driver.findElement(By.css('#exsubject'));
- const selectedOption = await elementDropdown.findElement(By.css('option:checked'));
-
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Choose a subject') {
- console.log('Passed: DIV - Subject dropdown text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Subject: "Choose a subject"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Subject dropdown font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Subject dropdown font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: DIV - Subject dropdown font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Subject dropdown font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Subject dropdown color matched as expected');
- } else {
- errors.push(`Expected: DIV - Subject dropdown color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expectedList = [
- 'Choose a subject',
- 'Health and PE',
- 'Language Arts',
- 'Mathematics',
- 'Science',
- 'Social Studies',
- 'Technology Education'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: DIV - Subject Dropdown list matched as expected');
- } else {
- errors.push(`Expected: DIV - Subject Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Alabama Standards Format label
- {
- description: 'Validate DIV - Alabama Standards Format label text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Standards Format label';
- const element = await driver.findElement(By.css('.form-row:nth-child(2) > .form-group:nth-child(2) > label'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Format') {
- console.log('Passed: DIV - Alabama Standards Format label matched as expected');
- } else {
- errors.push(`Expected: DIV - "Format" label; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Alabama Standards Format label font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Format label font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: DIV - Alabama Standards Format label text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Format label text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Alabama Standards Format label text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Standards Format label text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Format dropdown
- {
- description: 'Validate DIV - Format dropdown list and value',
- action: async () => {
- const multipleChecks = 'DIV - Format dropdown';
- const elementDropdown = await driver.findElement(By.css('#exformat'));
- const selectedOption = await elementDropdown.findElement(By.css('option:checked'));
-
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'CSV') {
- console.log('Passed: DIV - Format dropdown text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Format: "CSV"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Format dropdown font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Format dropdown font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: DIV - Format dropdown font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Format dropdown font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Format dropdown color matched as expected');
- } else {
- errors.push(`Expected: DIV - Format dropdown color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expectedList = [
- 'CSV',
- 'JSON'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: DIV - Format Dropdown list matched as expected');
- } else {
- errors.push(`Expected: DIV - Format Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Grades label
- {
- description: 'Validate DIV - Grades label text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Grades label';
- const element = await driver.findElement(By.css('.col-md-12:nth-child(1) > label'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Grades') {
- console.log('Passed: DIV - Grades label matched as expected');
- } else {
- errors.push(`Expected: DIV - "Grades" label; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Grades label font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades label font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '15px') {
- console.log('Passed: DIV - Grades label text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades label text font-size "15px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Grades label text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades label text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Grades dropdown
- {
- description: 'Validate DIV - Grades dropdown list and value',
- action: async () => {
- const multipleChecks = 'DIV - Grades dropdown';
- const elementDropdown = await driver.findElement(By.css('#exgrades'));
-
- const elementText = await elementDropdown.getText();
- const elementFont = await elementDropdown.getCssValue('font-family');
- const elementSize = await elementDropdown.getCssValue('font-size');
- const elementColor = await elementDropdown.getCssValue('color');
-
- const options = await elementDropdown.findElements(By.css('option'));
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Please select a subject first') {
- console.log('Passed: DIV - Grades dropdown text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Grades: "Please select a subject first"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Grades dropdown font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades dropdown font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: DIV - Grades dropdown font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades dropdown font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Grades dropdown color matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades dropdown color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const expectedList = [
- 'Please select a subject first'
- ];
-
- const actual = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: DIV - Grades Dropdown list matched as expected');
- } else {
- errors.push(`Expected: DIV - Grades Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Download button
- {
- description: 'Validate DIV - Download button icon, text, and color',
- action: async () => {
- const multipleChecks = 'DIV - Download button';
- const elementIcon = await driver.findElement(By.css('#exsubmit > .fa'));
- const element = await driver.findElement(By.css('#exsubmit'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //icon
- if (elementIcon) {
- console.log('Passed: DIV - Download button icon is present');
- } else {
- errors.push('DIV - Download button icon was not found');
- }
-
- //text
- if (elementText === 'Download') {
- console.log('Passed: DIV - Download button text matched as expected');
- } else {
- errors.push(`Expected: DIV - Button text: "Download"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Download button text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Download button text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: DIV - Download button text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Download button text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(255, 255, 255, 1)') {
- console.log('Passed: DIV - Download button text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Download button text color: "rgba(255, 255, 255, 1)"; Actual: "${elementColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(48, 200, 172, 1)') {
- console.log('Passed: DIV - Download button background color matched as expected');
- } else {
- errors.push(`Expected: DIV - Download button background color: "rgba(48, 200, 172, 1)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Close button
- {
- description: 'Validate DIV - Close button text, style, font, and color',
- action: async () => {
- const multipleChecks = 'DIV - Close button';
- const element = await driver.findElement(By.css('#modalclose'));
-
- //Get text, font, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Close') {
- console.log('Passed: DIV - Close button text matched as expected');
- } else {
- errors.push(`Expected: DIV - Button text: "Close"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Close button text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Close button text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: DIV - Close button text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Close button text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Close button text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Close button text color: "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(0, 0, 0, 0)') {
- console.log('Passed: DIV - Close button background color matched as expected');
- } else {
- errors.push(`Expected: DIV - Close button background color: "rgba(0, 0, 0, 0)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'DIV - Click Export button',
- action: async () => {
- await driver.findElement(By.css('#exsubmit')).click();
- console.log('----->| NEXT ACTION: Clicked Export button');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.css('#metawarn > b'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Validation text not visible within 20 seconds');
-
- console.log('Passed: DIV - Validation message appeared');
- }
- },
-
- //DIV - Validation
- {
- description: 'Validate DIV - Validation text, color, and size',
- action: async () => {
- const element = await driver.findElement(By.css('#metawarn > b'));
-
- //Get text, color, and size
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'A subject and at least one grade must be selected.') {
- console.log('Passed: DIV - Validation text matched as expected');
- } else {
- errors.push(`Expected: DIV - Validation text: "A subject and at least one grade must be selected."; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Validation text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Validation text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: DIV - Validation text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Validation text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(220, 53, 69, 1)') {
- console.log('Passed: DIV - Validation text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Validation text color: "rgba(220, 53, 69, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift('Multiple validation checks did not pass');
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Select subject and grade',
- action: async () => {
- //Select "Mathematics" from dropdown
- await driver.findElement(By.css('#exsubject')).click();
- await driver.sleep(2000);
- await driver.findElement(By.css('#exsubject > option:nth-child(4)')).click();
- console.log('----->| NEXT ACTION: Selected Subject - Mathematics');
-
- //Wait for the X clear icon (Select2 uses this class)
- const clearGradesIcon = await driver.wait(
- until.elementLocated(By.css('#exgrades + span .select2-selection__clear')),
- 20000
- );
-
- //Wait until visible
- await driver.wait(
- until.elementIsVisible(clearGradesIcon),
- 20000
- );
-
- //Click to clear grades
- await clearGradesIcon.click();
- await driver.sleep(1000);
- console.log('----->| NEXT ACTION: Clicked Grades X clear icon');
-
- await driver.findElement(By.xpath("//li[contains(text(), '9')]")).click();
- await driver.sleep(1000);
-
- await driver.findElement(By.xpath("//li[contains(text(), '10')]")).click();
- await driver.sleep(1000);
-
- await driver.findElement(By.xpath("//li[contains(text(), '11')]")).click();
- await driver.sleep(1000);
-
- await driver.findElement(By.xpath("//li[contains(text(), '12')]")).click();
- await driver.sleep(1000);
-
- //Click away from dropdown list
- await driver.findElement(By.css('#exform > div:nth-child(3) > div > span')).click();
- await driver.sleep(1000);
-
- console.log('----->| NEXT ACTION: Selected grades: 9, 10, 11, and 12');
- },
- },
-
- //DIV - Grade 9
- {
- description: 'Validate DIV - Grade 9',
- action: async () => {
- const multipleChecks = 'DIV - Grade 9';
- const elementIconToolTip = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(1) > button')).getAttribute('title');
- const element = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(1)'));
-
- const elementText = await element.getText();
- const elementToolTip = await element.getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //icon tool-tip
- if (elementIconToolTip === 'Remove item') {
- console.log('Passed: DIV - Grade 9 icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 9 icon tool-tip text: "Remove item"; Actual: "${elementIconToolTip}"`);
- }
-
- //text
- if (elementText.includes('9')) {
- console.log('Passed: DIV - Grades selection included "9" text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Grades selection: "9"; Actual: "${elementText}"`);
- }
-
- //tool-tip
- if (elementToolTip === '9') {
- console.log('Passed: DIV - Grade 9 tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 9 tool-tip text: "9"; Actual: "${elementToolTip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Grade 10
- {
- description: 'Validate DIV - Grade 10',
- action: async () => {
- const multipleChecks = 'DIV - Grade 10';
- const elementIconToolTip = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(2) > button')).getAttribute('title');
- const element = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(2)'));
-
- const elementText = await element.getText();
- const elementToolTip = await element.getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //icon tool-tip
- if (elementIconToolTip === 'Remove item') {
- console.log('Passed: DIV - Grade 10 icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 10 icon tool-tip text: "Remove item"; Actual: "${elementIconToolTip}"`);
- }
-
- //text
- if (elementText.includes('10')) {
- console.log('Passed: DIV - Grades selection included "10" text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Grades selection: "10"; Actual: "${elementText}"`);
- }
-
- //tool-tip
- if (elementToolTip === '10') {
- console.log('Passed: DIV - Grade 10 tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 10 tool-tip text: "9"; Actual: "${elementToolTip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Grade 11
- {
- description: 'Validate DIV - Grade 11',
- action: async () => {
- const multipleChecks = 'DIV - Grade 11';
- const elementIconToolTip = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(3) > button')).getAttribute('title');
- const element = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(3)'));
-
- const elementText = await element.getText();
- const elementToolTip = await element.getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //icon tool-tip
- if (elementIconToolTip === 'Remove item') {
- console.log('Passed: DIV - Grade 11 icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 11 icon tool-tip text: "Remove item"; Actual: "${elementIconToolTip}"`);
- }
-
- //text
- if (elementText.includes('11')) {
- console.log('Passed: DIV - Grades selection included "11" text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Grades selection: "11"; Actual: "${elementText}"`);
- }
-
- //tool-tip
- if (elementToolTip === '11') {
- console.log('Passed: DIV - Grade 11 tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 11 tool-tip text: "9"; Actual: "${elementToolTip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - Grade 12
- {
- description: 'Validate DIV - Grade 12',
- action: async () => {
- const multipleChecks = 'DIV - Grade 12';
- const elementIconToolTip = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(4) > button')).getAttribute('title');
- const element = await driver.findElement(By.css('#select2-exgrades-container > li:nth-child(4)'));
-
- const elementText = await element.getText();
- const elementToolTip = await element.getAttribute('title');
-
- //Track all errors
- const errors = [];
-
- //icon tool-tip
- if (elementIconToolTip === 'Remove item') {
- console.log('Passed: DIV - Grade 12 icon tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 12 icon tool-tip text: "Remove item"; Actual: "${elementIconToolTip}"`);
- }
-
- //text
- if (elementText.includes('12')) {
- console.log('Passed: DIV - Grades selection included "12" text matched as expected');
- } else {
- throw new Error(`Expected: DIV - Grades selection: "12"; Actual: "${elementText}"`);
- }
-
- //tool-tip
- if (elementToolTip === '12') {
- console.log('Passed: DIV - Grade 12 tool-tip text matched as expected');
- } else {
- errors.push(`Expected: DIV - Grade 12 tool-tip text: "9"; Actual: "${elementToolTip}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'DIV - Click Export button then Close DIV',
- action: async () => {
- const multipleChecks = 'DIV - Processing status';
-
- const errors = [];
-
- //Capture styles immediately via executeScript BEFORE clicking
- //This sets up a MutationObserver to catch the spinner the moment it appears
- await driver.executeScript(`
- window._spinnerStyles = null;
- const observer = new MutationObserver(() => {
- const el = document.querySelector('#modalspin strong');
- if (el) {
- const style = window.getComputedStyle(el);
- const spinDiv = document.querySelector('#modalspin');
- const spinStyle = window.getComputedStyle(spinDiv);
- if (spinStyle.display !== 'none') {
- window._spinnerStyles = {
- text: el.textContent.trim(),
- fontFamily: style.getPropertyValue('font-family'),
- fontSize: style.getPropertyValue('font-size'),
- color: style.getPropertyValue('color')
- };
- observer.disconnect();
- }
- }
- });
- observer.observe(document.querySelector('#modalspin'), {
- attributes: true,
- attributeFilter: ['style']
- });
- `);
-
- //Now click Export
- await driver.findElement(By.css('#exsubmit')).click();
- console.log('----->| NEXT ACTION: Clicked Export button');
-
- //Wait for MutationObserver to capture the styles
- await driver.wait(async () => {
- const captured = await driver.executeScript(`return window._spinnerStyles !== null;`);
- return captured;
- }, 15000, 'Processing spinner styles were not captured within 15 seconds');
-
- //Get the captured styles
- const styles = await driver.executeScript(`return window._spinnerStyles;`);
- //console.log('----->| DEBUG captured styles:', JSON.stringify(styles));
-
- //text
- if (styles.text === 'Processing...') {
- console.log('Passed: DIV - Status text matched as expected');
- } else {
- errors.push(`Expected: DIV - Status text: "Processing..."; Actual: "${styles.text}"`);
- }
-
- //font
- if (styles.fontFamily === 'Poppins, sans-serif') {
- console.log('Passed: DIV - Processing... status text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Processing... status text font-family "Poppins, sans-serif"; Actual: "${styles.fontFamily}"`);
- }
-
- //size
- if (styles.fontSize === '23.4px') {
- console.log('Passed: DIV - Processing... status text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Processing... status text font-size "23.4px"; Actual: "${styles.fontSize}"`);
- }
-
- //color
- if (styles.color === 'rgb(40, 39, 90)') {
- console.log('Passed: DIV - Processing... status text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Processing... status text color "rgb(40, 39, 90)"; Actual: "${styles.color}"`);
- }
-
- //Wait until processing is complete
- await driver.wait(async () => {
- try {
- const spinDiv = await driver.findElement(By.css('#modalspin'));
- return !(await spinDiv.isDisplayed());
- } catch (e) {
- return true;
- }
- }, 30000, 'Processing... Status did not disappear within 30 seconds');
- console.log('Passed: Processing... Status is no longer visible as expected');
-
- await driver.findElement(By.css('#modalclose')).click();
- console.log('----->| NEXT ACTION: Clicked Close button');
-
- //Wait for page to load completely
- await driver.wait(async () => {
- const readyState = await driver.executeScript('return document.readyState');
- return readyState === 'complete';
- }, 20000, 'ExACT Dashboard did not fully load within 60 seconds');
- console.log('Passed: ExACT Dashboard loaded successfully');
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click Alabama More Info icon',
- action: async () => {
- await driver.findElement(By.css('#stdbody > tr:nth-child(1) > .text-center:nth-child(4) img')).click();
- console.log('----->| NEXT ACTION: Clicked Alabama More Info icon');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.css('.modal-lg .modal-title'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Modal did not become visible within 20 seconds');
-
- console.log('Passed: DIV - Loaded successfully');
- }
- },
-
- //Alabama Courses of Study DIV
- //DIV - Alabama Courses of Study title
- {
- description: 'Validate DIV - Alabama Courses of Study title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Courses of Study title';
- const element = await driver.findElement(By.css('.modal-lg .modal-title'));
-
- //Get text, font, size, and color
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Alabama Courses of Study') {
- console.log('Passed: DIV - Alabama Courses of Study title matched as expected');
- } else {
- errors.push(`Expected: DIV - "Alabama Courses of Study"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - Alabama Courses of Study title font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Courses of Study title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '18px') {
- console.log('Passed: DIV - Alabama Courses of Study title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Courses of Study title text font-size "18px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: DIV - Alabama Courses of Study title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - Alabama Courses of Study title text color "rgba(40, 39, 90, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama sub-text
- {
- description: 'Validate DIV - More Info Alabma sub-text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama sut-text';
- const element = await driver.findElement(By.css('.modal-body > .notenabled'));
-
- //Get text, font, size, and color
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === '*Not enabled in Profile. If you would like access to any of these standards sets, please Contact Us.') {
- console.log('Passed: DIV - More Info Arizona sub-text matched as expected');
- } else {
- errors.push(`Expected: DIV - sub-text "*Not enabled in Profile. If you would like access to any of these standards sets, please Contact Us."; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === "Poppins, sans-serif") {
- console.log('Passed: DIV - More Info Arizona sub-text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona sub-text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '11.7px') {
- console.log('Passed: DIV - More Info Arizona sub-text text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona sub-text text font-size "11.7px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(119, 119, 119, 1)') {
- console.log('Passed: DIV - More Info Arizona sub-text color matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona sub-text text color "rgba(119, 119, 119, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Contact Us link
- {
- description: 'Validate DIV - More Info Alabama Contact Us link text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Courses of Study Contact Us link';
- const element = await driver.findElement(By.linkText('Contact Us'));
-
- //Get text, font, size, color, url
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
- const elementURL = await element.getAttribute('href');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Contact Us') {
- console.log('Passed: DIV - More Info Alabama sub-text matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Alabama sub-text "Contact Us"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: DIV - More Info Alabama sub-text font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Alabama sub-text font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '11.7px') {
- console.log('Passed: DIV - More Info Alabama Contact Us link text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Alabama Contact Us link text font-size "11.7px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(48, 200, 172, 1)') {
- console.log('Passed: DIV - More Info Alabama Contact Us link text color matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Alabama Contact Us link text color "rgba(48, 200, 172, 1)"'; Actual: "${elementColor}"`);
- }
-
- //url
- if (elementURL === 'https://edgate.com/contact-us') {
- console.log('Passed: DIV - More Info Alabama Contact Us URL link matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Alabama Contact Us URL: "https://edgate.com/contact-us"; Actual: "${elementURL}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Subject column title
- {
- description: 'Validate DIV - More Info Alabama Subject column title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Courses of Study column title';
- const element = await driver.findElement(By.css('#myModal > div > div > div.modal-body > table > thead > tr > th:nth-child(1)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Subject') {
- console.log('Passed: DIV - More Info Arizona Subject column title text matched as expected');
- } else {
- errors.push(`Expected: DIV - Arizona column title "Subject"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: DIV - More Info Arizona Subject column title font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Subject column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: DIV - More Info Arizona Subject column title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Subject column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: DIV - More Info Arizona Subject column title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Subject column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Adopted column title
- {
- description: 'Validate DIV - More Info Alabama Adopted column title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Courses of Study Adopted column title';
- const element = await driver.findElement(By.css('#myModal > div > div > div.modal-body > table > thead > tr > th:nth-child(2)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Adopted') {
- console.log('Passed: DIV - More Info Arizona Adopted column title text matched as expected');
- } else {
- errors.push(`Expected: DIV - Arizona column title "Adopted"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: DIV - More Info Arizona Adopted column title font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Adopted column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: DIV - More Info Arizona Adopted column title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Adopted column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: DIV - More Info Arizona Adopted column title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Adopted column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Grades column title
- {
- description: 'Validate DIV - More Info Alabama Grades column title text, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - Alabama Courses of Study Grades column title';
- const element = await driver.findElement(By.css('#myModal > div > div > div.modal-body > table > thead > tr > th:nth-child(3)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText('');
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color')
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Grades') {
- console.log('Passed: DIV - More Info Arizona Grades column title text matched as expected');
- } else {
- errors.push(`Expected: DIV - Arizona column title "Grades"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: DIV - More Info Arizona Grades column title font-family matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Grades column title font-family "Poppins, sans-serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '14px') {
- console.log('Passed: DIV - More Info Arizona Grades column title text font-size matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Grades column title text font-size "14px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(94, 105, 116, 1)') {
- console.log('Passed: DIV - More Info Arizona Grades column title text color matched as expected');
- } else {
- errors.push(`Expected: DIV - More Info Arizona Grades column title text color "rgba(94, 105, 116, 1)"'; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 1 label
- {
- description: 'Validate DIV - More Info Alabama Row 1 label text, font, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 1 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(1) > td:nth-child(1)',
- label: 'Health and PE',
- expected: {
- text: 'Health and PE',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(1) > td:nth-child(2)',
- label: '2019',
- expected: {
- text: '2019',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(1) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 1 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 1 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 1 ${label} label text font-family matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 1 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 1 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 1 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 1 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 1 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 2 label
- {
- description: 'Validate DIV - More Info Alabama Row 2 label text, font, color, and size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 2 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(2) > td:nth-child(1)',
- label: 'Language Arts',
- expected: {
- text: 'Language Arts',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(2) > td:nth-child(2)',
- label: '2021/Effective 2022',
- expected: {
- text: '2021/Effective 2022',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(2) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 2 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 2 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 2 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 2 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 2 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 2 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 2 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 2 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 3 label
- {
- description: 'Validate DIV - More Info Alabama Row 3 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 3 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(3) > td:nth-child(1)',
- label: 'Mathematics',
- expected: {
- text: 'Mathematics',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(3) > td:nth-child(2)',
- label: '2019/Impl. 2020',
- expected: {
- text: '2019/Impl. 2020',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(3) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 3 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 3 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 3 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 3 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 3 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 3 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 3 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 3 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 4 label
- {
- description: 'Validate DIV - More Info Alabama Row 4 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 4 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(4) > td:nth-child(1)',
- label: 'Science',
- expected: {
- text: 'Science',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(4) > td:nth-child(2)',
- label: '2023',
- expected: {
- text: '2023',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(4) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 4 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 4 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 4 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 4 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 4 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 4 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 4 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 4 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 5 label
- {
- description: 'Validate DIV - More Info Alabama Row 5 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 5 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(5) > td:nth-child(1)',
- label: 'Social Studies',
- expected: {
- text: 'Social Studies',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(5) > td:nth-child(2)',
- label: '2024',
- expected: {
- text: '2024',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(5) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 5 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 5 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 5 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 5 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 5 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 5 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 5 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 5 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 6 label
- {
- description: 'Validate DIV - More Info Alabama Row 6 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 6 label';
-
- const checks = [
- //Subject
- {
- selector: '.text-success:nth-child(6) > td:nth-child(1)',
- label: 'Technology Education',
- expected: {
- text: 'Technology Education',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //Adopted
- {
- selector: '.text-success:nth-child(6) > td:nth-child(2)',
- label: '2025',
- expected: {
- text: '2025',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- },
-
- //All Grades list
- {
- selector: '.text-success:nth-child(6) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(40, 167, 69, 1)',
- size: '14.3px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 6 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 6 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 6 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 6 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 6 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 6 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 6 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 6 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 7 label
- {
- description: 'Validate DIV - More Info Alabama Row 7 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 7 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(7) > td:nth-child(1)',
- label: 'Arts Education*',
- expected: {
- text: 'Arts Education*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(7) > td:nth-child(2)',
- label: '2017',
- expected: {
- text: '2017',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Grades
- {
- selector: '.notenabled:nth-child(7) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 7 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 7 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 7 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 7 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 7 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 7 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 7 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 7 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 8 label
- {
- description: 'Validate DIV - More Info Alabama Row 8 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 8 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(8) > td:nth-child(1)',
- label: 'Career Development*',
- expected: {
- text: 'Career Development*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(8) > td:nth-child(2)',
- label: '2016',
- expected: {
- text: '2016',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //All Grades list
- {
- selector: '.notenabled:nth-child(8) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: '9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 8 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 8 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 8 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 8 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 8 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 8 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 8 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 8 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 9 label text
- {
- description: 'Validate DIV - More Info Alabama Row 9 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 9 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(9) > td:nth-child(1)',
- label: 'Early Childhood Education*',
- expected: {
- text: 'Early Childhood Education*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(9) > td:nth-child(2)',
- label: '2023',
- expected: {
- text: '2023',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Ages 3-5*
- {
- selector: '.notenabled:nth-child(9) .notenabled',
- label: 'Ages 3-5*',
- expected: {
- text: 'Ages 3-5*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '11.583px'
- }
- },
-
- //All Grades list 1
- {
- selector: '.notenabled:nth-child(2)',
- label: 'Ages Birth to 12 months*',
- expected: {
- text: 'Ages Birth to 12 months*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '11.583px'
- }
- },
-
- //All Grades list 2
- {
- selector: '.notenabled:nth-child(3)',
- label: 'Ages 13 to 24 months*',
- expected: {
- text: 'Ages 13 to 24 months*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '11.583px'
- }
- },
-
- //All Grades list 3
- {
- selector: '.notenabled:nth-child(4)',
- label: 'Ages 25 to 36 months*',
- expected: {
- text: 'Ages 25 to 36 months*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '11.583px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 9 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 9 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 9 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 9 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 9 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 9 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 9 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 9 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 10 label text
- {
- description: 'Validate DIV - More Info Alabama Row 10 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 10 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(10) > td:nth-child(1)',
- label: 'English Language Learners*',
- expected: {
- text: 'English Language Learners*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(10) > td:nth-child(2)',
- label: '2020',
- expected: {
- text: '2020',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //All Grades list
- {
- selector: '.notenabled:nth-child(10) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 11 label
- {
- description: 'Validate DIV - More Info Alabama Row 11 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 11 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(11) > td:nth-child(1)',
- label: 'Social and Emotional Learning*',
- expected: {
- text: 'Social and Emotional Learning*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(11) > td:nth-child(2)',
- label: '2013',
- expected: {
- text: '2013',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Pre K*
- {
- selector: '.notenabled:nth-child(11) .notenabled',
- label: 'Pre K*',
- expected: {
- text: 'Pre K*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '11.583px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 11 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 11 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 11 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 11 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 11 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 11 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 11 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 11 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //DIV - More Info Alabama Row 12 label text
- {
- description: 'Validate DIV - More Info Alabama Row 12 label text, color, and font size',
- action: async () => {
- const multipleChecks = 'DIV - More Info Alabama Row 12 label';
-
- const checks = [
- //Subject
- {
- selector: '.notenabled:nth-child(12) > td:nth-child(1)',
- label: 'World Languages*',
- expected: {
- text: 'World Languages*',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //Adopted
- {
- selector: '.notenabled:nth-child(12) > td:nth-child(2)',
- label: '2017',
- expected: {
- text: '2017',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- },
-
- //All Grades list
- {
- selector: '.notenabled:nth-child(12) > td:nth-child(3)',
- label: 'Grades List',
- expected: {
- text: 'K, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12',
- font: 'Poppins, sans-serif',
- color: 'rgba(119, 119, 119, 1)',
- size: '12.87px'
- }
- }
- ];
-
- const allErrors = [];
-
- async function validateCell({ selector, label, expected }) {
- const element = await driver.findElement(By.css(selector));
-
- const actualText = await element.getText();
- const actualFont = await element.getCssValue('font-family');
- const actualSize = await element.getCssValue('font-size');
- const actualColor = await element.getCssValue('color');
-
- const errors = [];
-
- //text
- if (actualText === expected.text) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 "${expected.text}"; Actual: "${actualText}"`);
- }
-
- //font
- if (actualFont === expected.font) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text font matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 "${expected.font}"; Actual: "${actualFont}"`);
- }
-
- //size
- if (actualSize === expected.size) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text font-size matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 ${label} label text font-size "${expected.size}"; Actual: "${actualSize}"`);
- }
-
- //color
- if (actualColor === expected.color) {
- console.log(`Passed: DIV - More Info Alabama Row 10 ${label} label text color matched as expected`);
- } else {
- errors.push(`Expected: DIV - More Info Alabama Row 10 ${label} label text color "${expected.color}"; Actual: "${actualColor}"`);
- }
-
- return errors;
- }
-
- for (const check of checks) {
- const errs = await validateCell(check);
- allErrors.push(...errs);
- }
-
- if (allErrors.length > 0) {
- if (allErrors.length > 1) allErrors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- throw new Error(allErrors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click DIV X icon',
- action: async () => {
- await driver.findElement(By.css('.modal-lg .modal-header span')).click();
- console.log('----->| NEXT ACTION: Clicked DIV X icon');
-
- //Wait for page to load completely
- await driver.wait(async () => {
- const readyState = await driver.executeScript('return document.readyState');
- return readyState === 'complete';
- }, 20000, 'ExACT Dashboard did not fully load within 60 seconds');
- console.log('Passed: ExACT Dashboard loaded successfully');
- }
- },
-
- //NEXT ACTION
- {
- description: 'Dashboard - Click Alabama View icon',
- action: async () => {
- await driver.findElement(By.css('tr:nth-child(1) > .text-center:nth-child(5) img')).click();
- console.log('----->| NEXT ACTION: Clicked Alabama View icon');
-
- //Wait for page readyState
- await driver.wait(async () => {
- const readyState = await driver.executeScript('return document.readyState');
- return readyState === 'complete';
- }, 30000, 'Browse standards page did not fully load within 30 seconds');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.linkText('Content'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Content tab did not become visible within 20 seconds');
-
- console.log('Passed: Content tab loaded successfully');
- }
- },
-
- //Content tab title
- {
- description: 'Validate Content tab title text, size, and color',
- action: async () => {
- const multipleChecks = 'Content tab title';
- const element = await driver.findElement(By.linkText('Content'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Content') {
- console.log('Passed: Content tab title text matched as expected');
- } else {
- errors.push(`Expected: "Content"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: Content tab title font-family matched as expected');
- } else {
- errors.push(`Expected: Content tab title font-family "Poppins, sans-serif"; Actual: ${elementTextFont}`);
- }
-
- //size
- if (elementTextSize === '15px') {
- console.log('Passed: Content tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Content tab title text font-size "15px"; Actual: "${elementTextSize}"`);
- }
-
- //color
- if (elementTextColor === 'rgba(182, 186, 181, 1)') {
- console.log('Passed: Content tab title text color matched as expected');
- } else {
- errors.push(`Expected: Content tab title text color: "rgba(182, 186, 181, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(0, 0, 0, 0)') {
- console.log('Passed: Content tab background color matched as expected');
- } else {
- errors.push(`Expected: Content tab background color: "rgba(0, 0, 0, 0)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Standards tab tab title (active)
- {
- description: 'Validate Standards tab title text, size, and color',
- action: async () => {
- const multipleChecks = 'By Standard tab title';
- const element = await driver.findElement(By.linkText('Standards'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Standards') {
- console.log('Passed: Standards tab title text matched as expected');
- } else {
- errors.push(`Expected: "Standards"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: Standards tab title font-family matched as expected');
- } else {
- errors.push(`Expected: Standards tab title font-family "Poppins, sans-serif"; Actual: ${elementTextFont}`);
- }
-
- //size
- if (elementTextSize === '15px') {
- console.log('Passed: Standards tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: Standards tab title text font-size "15px"; Actual: "${elementTextSize}"`);
- }
-
- //color
- if (elementTextColor === 'rgba(255, 255, 255, 1)') {
- console.log('Passed: Standards tab title text color matched as expected');
- } else {
- errors.push(`Expected: Standards tab title text color: "rgba(255, 255, 255, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Standards tab background color matched as expected');
- } else {
- errors.push(`Expected: Standards tab background color: "rgba(40, 39, 90, 1)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //AutoAlign tab title
- {
- description: 'Validate AutoAlign tab title text, size, and color',
- action: async () => {
- const multipleChecks = 'AutoAlign tab title';
- const element = await driver.findElement(By.linkText('AutoAlign'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'AutoAlign') {
- console.log('Passed: AutoAlign tab title text matched as expected');
- } else {
- errors.push(`Expected: "AutoAlign"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: AutoAlign tab title font-family matched as expected');
- } else {
- errors.push(`Expected: AutoAlign tab title font-family "DM Serif Display, serif"; Actual: ${elementTextFont}`);
- }
-
- //size
- if (elementTextSize === '15px') {
- console.log('Passed: AutoAlign tab title text font-size matched as expected');
- } else {
- errors.push(`Expected: AutoAlign tab title text font-size "15px"; Actual: "${elementTextSize}"`);
- }
-
- //color
- if (elementTextColor === 'rgba(182, 186, 181, 1)') {
- console.log('Passed: AutoAlign tab title text color matched as expected');
- } else {
- errors.push(`Expected: AutoAlign tab title text color: "rgba(182, 186, 181, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(0, 0, 0, 0)') {
- console.log('Passed: AutoAlign tab background color matched as expected');
- } else {
- errors.push(`Expected: AutoAlign tab background color: "rgba(0, 0, 0, 0)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Browse - Browse standards sub-title
- {
- description: 'Validate Browse - Browse standards sub-title text, color, and size',
- action: async () => {
- const multipleChecks = 'Browse sub-title';
- const element = await driver.findElement(By.css('#std .fom-title'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Browse standards') {
- console.log("Passed: Browse page - Browse standards sub-title matched as expected");
- } else {
- errors.push(`Expected: "Browse standards" sub-title; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Browse page - Browse standards sub-title font-family matched as expected');
- } else {
- errors.push(`Expected: Browse page - Browse standards sub-title font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Browse page - Browse standards sub-title text font-size matched as expected');
- } else {
- errors.push(`Expected: Browse page - Browse standards sub-title text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Browse page - Browse standards sub-title text color matched as expected');
- } else {
- errors.push(`Expected: Browse page - Browse standards sub-title text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Standards label
- {
- description: 'Validate Standards label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Standards label';
- const element = await driver.findElement(By.css('#browse-standards > .form-group:nth-child(1) > .col-sm-12'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Standards') {
- console.log("Passed: Standards label matched as expected");
- } else {
- errors.push(`Expected: "Standards" label; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Standards label font-family matched as expected');
- } else {
- errors.push(`Expected: Standards label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Standards label text font-size matched as expected');
- } else {
- errors.push(`Expected: Standards label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Standards label text color matched as expected');
- } else {
- errors.push(`Expected: Standards label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Standards dropdown
- {
- description: 'Validate Standards dropdown list and value',
- action: async () => {
- const multipleChecks = 'Standards Dropdown List';
- const select = await driver.findElement(By.css('#stdselect'));
-
- //Get text, font, size, and color
- const selectedOption = await select.findElement(By.css('option:checked'));
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //text
- if (elementText === 'Alabama') {
- console.log("Passed: Alabama default option matched as expected");
- } else {
- errors.push(`Expected option: "Alabama"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Alabama default text font-family matched as expected');
- } else {
- errors.push(`Expected: Alabama default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Alabama default text font-size matched as expected');
- } else {
- errors.push(`Expected: Alabama default text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Alabama default text color matched as expected');
- } else {
- errors.push(`Expected: Alabama default text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const options = await select.findElements(By.css('option'));
- const expectedList = [
- 'Select standards',
- 'Alabama',
- 'Arizona',
- 'California',
- 'Florida',
- 'Georgia',
- 'Illinois',
- 'New York',
- 'Texas',
- 'Washington',
- 'Common Core State Standards',
- 'Alberta Standards',
- 'Ontario Curriculum',
- 'Australian Curriculum (ACARA) v8',
- 'New South Wales',
- 'NCSSFL-ACTFL CAN-DO STATEMENTS',
- 'WIDA Consortium (2020)',
- '5th Grade Import ECS-2732',
- 'Imported Framework Updated',
- 'ECS-2933 Testing On Prod',
- //'Stats Test Framework',
- 'Widget Test',
- 'California Mathematics 1997',
- 'Georgia Archived Language Arts QA',
- 'Georgia Current Language Arts QA',
- 'Georgia Future Language Arts QA',
- 'create group test',
- 'IMport Test'
- ];
- const actual = [];
-
- //Track all errors
- const errors = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: Standards Dropdown list matched as expected');
- } else {
- errors.push(`Expected: Standards Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Standards Display label
- {
- description: 'Validate Standards Display label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Standards Display label';
- const element = await driver.findElement(By.css('.form-group:nth-child(2) > .col-sm-2'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Standards Display') {
- console.log("Passed: Standards Display label text matched as expected");
- } else {
- errors.push(`Expected: ""Standards Display" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Standards Display label font-family matched as expected');
- } else {
- errors.push(`Expected: Standards Display label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Standards Display label text font-size matched as expected');
- } else {
- errors.push(`Expected: Standards Display label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Standards Display label text color matched as expected');
- } else {
- errors.push(`Expected: Standards Display label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //All radio option
- {
- description: 'Validate All radio option text, font, size, and color',
- action: async () => {
- const multipleChecks = 'All radio option';
- const elementOption = await driver.findElement(By.css('#gap1')).getAttribute('checked');
- const element = await driver.findElement(By.css('.form-check:nth-child(1) > .form-check-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //icon
- if (elementOption === 'true') {
- console.log('Passed: All radio option selected as expected');
- } else {
- throw new Error(`All radio option value was not selected; Actual: "${elementOption}"`);
- }
-
- //text
- if (elementText === 'All') {
- console.log('Passed: All radio label text matched as expected');
- } else {
- errors.push(`Expected: "All" radio label text; Actual: "${elementText}"`);
- }
-
- //font-family
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: All radio label font matched as expected');
- } else {
- errors.push(`Expected: All radio label font "DM Serif Display, serif"; Actual: ${elementTextFont}`);
- }
-
- //font size
- if (elementTextSize === '13px') {
- console.log('Passed: All radio label text font-size matched as expected');
- } else {
- errors.push(`Expected: All radio label text font-size "13px"; Actual: "${elementTextSize}"`);
- }
-
- //text color
- if (elementTextColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: All radio label text color matched as expected');
- } else {
- errors.push(`Expected: All radio label text color: "rgba(40, 39, 90, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Correlated Only radio option
- {
- description: 'Validate Correlated Only radio option text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Correlated Only radio option';
- const elementOption = await driver.findElement(By.css('#gap2'));
- const element = await driver.findElement(By.css('.form-check:nth-child(2) > .form-check-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //icon
- if (elementOption) {
- console.log('Passed: Correlated Only radio option is present');
- } else {
- throw new Error(`Correlated Only radio option was not found; Actual: "${elementOption}"`);
- }
-
- //text
- if (elementText === 'Correlated Only') {
- console.log('Passed: Correlated Only radio label text matched as expected');
- } else {
- errors.push(`Expected: "Correlated Only" radio label text; Actual: "${elementText}"`);
- }
-
- //font-family
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: Correlated Only radio label font matched as expected');
- } else {
- errors.push(`Expected: Correlated Only radio label font "DM Serif Display, serif"; Actual: ${elementTextFont}`);
- }
-
- //font size
- if (elementTextSize === '13px') {
- console.log('Passed: Correlated Only radio label text font-size matched as expected');
- } else {
- errors.push(`Expected: Correlated Only radio label text font-size "13px"; Actual: "${elementTextSize}"`);
- }
-
- //text color
- if (elementTextColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Correlated Only radio label text color matched as expected');
- } else {
- errors.push(`Expected: Correlated Only radio label text color: "rgba(40, 39, 90, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Uncorrelated Only radio option
- {
- description: 'Validate Uncorrelated Only radio option text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Uncorrelated Only radio option';
- const elementOption = await driver.findElement(By.css('#gap3'));
- const element = await driver.findElement(By.css('.form-check:nth-child(3) > .form-check-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //icon
- if (elementOption) {
- console.log('Passed: Uncorrelated Only radio option is present');
- } else {
- throw new Error(`Uncorrelated Only radio option was not found; Actual: "${elementOption}"`);
- }
-
- //text
- if (elementText === 'Uncorrelated Only') {
- console.log('Passed: Uncorrelated Only radio label text matched as expected');
- } else {
- errors.push(`Expected: "Uncorrelated Only" radio label text; Actual: "${elementText}"`);
- }
-
- //font-family
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: Uncorrelated Only radio label font matched as expected');
- } else {
- errors.push(`Expected: Uncorrelated Only radio label font "DM Serif Display, serif"; Actual: ${elementTextFont}`);
- }
-
- //font size
- if (elementTextSize === '13px') {
- console.log('Passed: Uncorrelated Only radio label text font-size matched as expected');
- } else {
- errors.push(`Expected: Uncorrelated Only radio label text font-size "13px"; Actual: "${elementTextSize}"`);
- }
-
- //text color
- if (elementTextColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Uncorrelated Only radio label text color matched as expected');
- } else {
- errors.push(`Expected: Uncorrelated Only radio label text color: "rgba(40, 39, 90, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Subject label
- {
- description: 'Validate Subject label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Subject label';
- const element = await driver.findElement(By.css('.hideSubject > .col-form-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Subject') {
- console.log("Passed: Subject label text matched as expected");
- } else {
- errors.push(`Expected: "Subject" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Subject label font-family matched as expected');
- } else {
- errors.push(`Expected: Subject label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Subject label text font-size matched as expected');
- } else {
- errors.push(`Expected: Subject label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Subject label text color matched as expected');
- } else {
- errors.push(`Expected: Subject label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Subject dropdown
- {
- description: 'Validate Subject dropdown list and value',
- action: async () => {
- const multipleChecks = 'Subject Dropdown List';
- const select = await driver.findElement(By.css('#selectSubjects'));
-
- //Get text, font, size, and color
- const selectedOption = await select.findElement(By.css('option:checked'));
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //text
- if (elementText === 'Select a subject') {
- console.log("Passed: Select a subject default option matched as expected");
- } else {
- errors.push(`Expected option: "Select a subject"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Select a subject default text font-family matched as expected');
- } else {
- errors.push(`Expected: Select a subject default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Select a subject default text font-size matched as expected');
- } else {
- errors.push(`Expected: Select a subject default text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Select a subject default text color matched as expected');
- } else {
- errors.push(`Expected: Select a subject default text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const options = await select.findElements(By.css('option'));
- const expectedList = [
- 'Select a subject',
- 'Health and PE',
- 'Language Arts',
- "Mathematics",
- "Science",
- "Social Studies",
- "Technology Education"
- ];
- const actual = [];
-
- //Track all errors
- const errors = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: Subject Dropdown list matched as expected');
- } else {
- errors.push(`Expected: Subject Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Grade label and dropdown
- {
- description: 'Validate Grade label and dropdown are hidden',
- action: async () => {
- const multipleChecks = 'Grade label and dropdown are hidden';
- const errors = [];
-
- const visibility = await driver.executeScript(`
- const hideGradeDiv = document.querySelector('.hideGrade');
- if (!hideGradeDiv) return { found: false };
- const style = window.getComputedStyle(hideGradeDiv);
- return {
- found: true,
- hidden: style.display === 'none',
- display: style.display
- };
- `);
- //console.log('----->| DEBUG hideGrade visibility:', JSON.stringify(visibility));
-
- //Both label and dropdown are inside the same hideGrade div
- //so we only need to check the parent container once
- if (visibility.found && visibility.hidden) {
- console.log('Passed: Grade label is hidden as expected');
- console.log('Passed: Grade dropdown is hidden as expected');
- } else {
- errors.push(`Expected: Grade label and dropdown to be hidden; Actual: display="${visibility.display}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Show Correlations From label
- {
- description: 'Validate Show Correlations From label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Show Correlations From label';
- const element = await driver.findElement(By.css('.form-group:nth-child(3) > .col-form-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Show Correlations From') {
- console.log("Passed: Show Correlations From label text matched as expected");
- } else {
- errors.push(`Expected: "Show Correlations From" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Show Correlations From label font-family matched as expected');
- } else {
- errors.push(`Expected: Show Correlations From label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Show Correlations From label text font-size matched as expected');
- } else {
- errors.push(`Expected: Show Correlations From label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Show Correlations From label text color matched as expected');
- } else {
- errors.push(`Expected: Show Correlations From label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Show Correlations From dropdown value
- {
- description: 'Validate Show Correlations From dropdown value',
- action: async () => {
- const multipleChecks = 'Show Correlations From dropdown value';
-
- //Locate and validate selected (collapsed) value
- const dropdownButton = await driver.findElement(
- By.css('button.multiselect.dropdown-toggle')
- );
-
- const selectedOption = await driver.findElement(By.css('#browse-standards > div:nth-child(3) > div > div > div:nth-child(3) > div > div > button > span'));
-
- //Get text, font, size, and color
- const elementText = await selectedOption.getText('');
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'All Content Sets') {
- console.log("Passed: All Content Sets default option matched as expected");
- } else {
- errors.push(`Expected option: "All Content Sets"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: All Content Sets default text font-family matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: All Content Sets default text font-size matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: All Content Sets default text color matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text color "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Term Search label
- {
- description: 'Validate Term Search label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Term Search label';
- const element = await driver.findElement(By.css('.form-group:nth-child(7) > .col-sm-2'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Term Search') {
- console.log("Passed: Term Search label text matched as expected");
- } else {
- errors.push(`Expected: "Term Search" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Term Search label font-family matched as expected');
- } else {
- errors.push(`Expected: Term Search label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Term Search label text font-size matched as expected');
- } else {
- errors.push(`Expected: Term Search label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Term Search label text color matched as expected');
- } else {
- errors.push(`Expected: Term Search label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Term Search placeholder
- {
- description: 'Validate Term Search placeholder',
- action: async () => {
- const elementPlaceholder = await driver.findElement(By.css('#searchTerm')).getAttribute('placeholder');
-
- if (elementPlaceholder === '') {
- console.log('Passed: Term Search "blank" placeholder text matched as expected');
- } else {
- throw new Error(`Expected: Term Search "blank" placeholder text; Actual: "${elementPlaceholder}"`);
- }
- }
- },
-
- //Include Related Standards checkbox
- {
- description: 'Validate Include Related Standards checkbox',
- action: async () => {
- const elementType = await driver.findElement(By.css('#doRel')).getAttribute('type');
-
- if (elementType === 'checkbox') {
- console.log('Passed: Include Related Standards checkbox type matched as expected');
- } else {
- throw new Error(`Include Related Standards checkbox type did not match; Actual: "${elementType}"`);
- }
- }
- },
-
- //Include Related Standards label
- {
- description: 'Validate Include Related Standards label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Include Related Standards label';
- const element = await driver.findElement(By.css('.col-sm-offset-2 > label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Include Related Standards') {
- console.log("Passed: Include Related Standards label text matched as expected");
- } else {
- errors.push(`Expected: "Include Related Standards" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Include Related Standards label font-family matched as expected');
- } else {
- errors.push(`Expected: Include Related Standards label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Include Related Standards label text font-size matched as expected');
- } else {
- errors.push(`Expected: Include Related Standards label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Include Related Standards label text color matched as expected');
- } else {
- errors.push(`Expected: Include Related Standards label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Search button
- {
- description: 'Validate Search button text, size, and color',
- action: async () => {
- const multipleChecks = 'Search button';
- const element = await driver.findElement(By.css('#stdsubmit'));
-
- //Get text, font, size, and color
- const elementText = await element.getAttribute('value');
- const elementTextFont = await element.getCssValue('font-family');
- const elementTextSize = await element.getCssValue('font-size');
- const elementTextColor = await element.getCssValue('color');
- const elementButtonColor = await element.getCssValue('background-color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Search') {
- console.log('Passed: Search button text matched as expected');
- } else {
- errors.push(`Expected: "Search"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementTextFont === 'Poppins, sans-serif') {
- console.log('Passed: Search button text font-family matched as expected');
- } else {
- errors.push(`Expected: Search button text font-family "Poppins, sans-serif"; Actual: ${elementTextFont}`);
- }
-
- //size
- if (elementTextSize === '16px') {
- console.log('Passed: Search button text font-size matched as expected');
- } else {
- errors.push(`Expected: Search button text font-size "16px"; Actual: "${elementTextSize}"`);
- }
-
- //color
- if (elementTextColor === 'rgba(255, 255, 255, 1)') {
- console.log('Passed: Search button text color matched as expected');
- } else {
- errors.push(`Expected: Search button text color: "rgba(255, 255, 255, 1)"; Actual: "${elementTextColor}"`);
- }
-
- //button color
- if (elementButtonColor === 'rgba(48, 200, 172, 1)') {
- console.log('Passed: Search button background color matched as expected');
- } else {
- errors.push(`Expected: Search button background color: "rgba(48, 200, 172, 1)"; Actual: "${elementButtonColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Validate alert message',
- action: async () => {
- const multipleChecks = 'Validate alert message';
- const errors = [];
-
- //Click delete button
- const element = await driver.findElement(By.css('#stdsubmit')).click();
- await driver.sleep(5000);
- console.log('----->| NEXT ACTION: Clicked Search button');
-
- //Wait for confirm dialog to appear
- const alert = await driver.wait(until.alertIsPresent(), 5000);
- console.log('----->| NEXT ACTION: Alert dialog appeared as expected');
-
- //Get alert text
- const alertText = await alert.getText();
-
- //Validate alert message text
- const expectedText = 'You must select a subject';
- if (alertText === expectedText) {
- console.log('Passed: Alert dialog text matched as expected');
- } else {
- errors.push(`Expected: "${expectedText}"; Actual: "${alertText}"`);
- }
-
- //Throw summary before dismissing if errors found
- if (errors.length > 0) {
- await alert.dismiss(); //Cancel the delete if validation failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
-
- //Accept the alert (click OK) to proceed with deletion
- await alert.accept();
- console.log('----->| NEXT ACTION: Clicked alert message OK button');
- await driver.sleep(2000);
- }
- },
-
- //NEXT ACTION
- {
- description: 'Click Subject dropdown',
- action: async () => {
- //Select "Mathematics" from dropdown
- const subjectDropdown = await driver.findElement(By.css('#selectSubjects'));
- const mathematicsOption = await driver.findElement(By.css('#selectSubjects > option:nth-child(4)'));
-
- await subjectDropdown.click();
- await driver.sleep(2000);
-
- await mathematicsOption.click();
- await driver.sleep(2000);
- console.log('----->| NEXT ACTION: Selected Subject - Mathematics');
-
- //Click away to close dropdown
- await driver.findElement(By.css('#browse-standards > .form-group:nth-child(1)')).click();
-
- //Wait for the dashboard container to exist in DOM
- await driver.wait(
- until.elementLocated(By.css('#selectGrade')),
- 30000,
- 'Grade dropdown did not appear within 30 seconds'
- );
-
- //Wait for it to be visible
- await driver.wait(async () => {
- try {
- const gradeDropdown = await driver.findElement(By.css('#selectGrade'));
- return await gradeDropdown.isDisplayed();
- } catch (e) {
- return false;
- }
- }, 30000, 'Grade dropdown did not become visible within 30 seconds');
- },
- },
-
- //Grade label
- {
- description: 'Validate Grade label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'Grade label';
- const element = await driver.findElement(By.css('.hideGrade > .col-form-label'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Grade') {
- console.log("Passed: Grade label text matched as expected");
- } else {
- errors.push(`Expected: "Grade" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Grade label font-family matched as expected');
- } else {
- errors.push(`Expected: Grade label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Grade label text font-size matched as expected');
- } else {
- errors.push(`Expected: Grade label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Grade label text color matched as expected');
- } else {
- errors.push(`Expected: Grade label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Grade dropdown
- {
- description: 'Validate Grade dropdown list and value',
- action: async () => {
- const multipleChecks = 'Grade Dropdown List';
- const select = await driver.findElement(By.css('#selectGrade'));
-
- //Get text, font, size, and color
- const selectedOption = await select.findElement(By.css('option:checked'));
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //text
- if (elementText === 'Select a grade') {
- console.log("Passed: Select a grade default option matched as expected");
- } else {
- errors.push(`Expected option: "Select a grade"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Select a grade default text font-family matched as expected');
- } else {
- errors.push(`Expected: Select a grade default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: Select a grade default text font-size matched as expected');
- } else {
- errors.push(`Expected: Select a grade default text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: Select a grade default text color matched as expected');
- } else {
- errors.push(`Expected: Select a grade default text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const options = await select.findElements(By.css('option'));
- const expectedList = [
- 'Select a grade',
- 'K',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12'
- ];
- const actual = [];
-
- //Track all errors
- const errors = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: Grade Dropdown list matched as expected');
- } else {
- errors.push(`Expected: Grade Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Validate alert message',
- action: async () => {
- const multipleChecks = 'Validate alert message';
- const errors = [];
-
- //Click delete button
- const element = await driver.findElement(By.css('#stdsubmit')).click();
- await driver.sleep(5000);
- console.log('----->| NEXT ACTION: Clicked Search button');
-
- //Wait for confirm dialog to appear
- const alert = await driver.wait(until.alertIsPresent(), 5000);
- console.log('----->| NEXT ACTION: Alert dialog appeared as expected');
-
- //Get alert text
- const alertText = await alert.getText();
-
- //Validate alert message text
- const expectedText = 'You must select a grade';
- if (alertText === expectedText) {
- console.log('Passed: Alert dialog text matched as expected');
- } else {
- errors.push(`Expected: "${expectedText}"; Actual: "${alertText}"`);
- }
-
- //Throw summary before dismissing if errors found
- if (errors.length > 0) {
- await alert.dismiss(); //Cancel the delete if validation failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
-
- //Accept the alert (click OK) to proceed with deletion
- await alert.accept();
- console.log('----->| NEXT ACTION: Clicked alert message OK button');
- await driver.sleep(2000);
- }
- },
-
- //NEXT ACTION
- {
- description: 'Select grade',
- action: async () => {
- //Select "9" from dropdown
- await driver.findElement(By.css('#selectGrade')).click();
- await driver.sleep(2000);
- await driver.findElement(By.css('#selectGrade > option:nth-child(11)')).click();
-
- console.log('----->| NEXT ACTION: Selected grade: 9');
- },
- },
-
- //Show Correlations From dropdown
- {
- description: 'Validate Show Correlations From dropdown list and value',
- action: async () => {
- const multipleChecks = 'Show Correlations From dropdown list';
-
- //Locate and validate selected (collapsed) value
- const dropdownButton = await driver.findElement(
- By.css('button.multiselect.dropdown-toggle')
- );
-
- const selectedOption = await driver.findElement(By.css('#browse-standards > div:nth-child(3) > div > div > div:nth-child(3) > div > div > button > span'));
-
- //Get text, font, size, and color
- const elementText = await selectedOption.getText('');
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //text
- if (elementText === 'All Content Sets') {
- console.log("Passed: All Content Sets default option matched as expected");
- } else {
- errors.push(`Expected option: "All Content Sets"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: All Content Sets default text font-family matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: All Content Sets default text font-size matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: All Content Sets default text color matched as expected');
- } else {
- errors.push(`Expected: All Content Sets default text color "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //Open dropdown
- await driver.findElement(By.css('.col-sm-12 .multiselect-selected-text')).click();
- await driver.sleep(2000);
- console.log('----->| NEXT ACTION: Clicked Show Correlations From dropdown');
-
- //Wait for dropdown list to become visible
- const dropdownMenu = await driver.wait(
- until.elementLocated(By.css('ul.multiselect-container.dropdown-menu.show')),
- 10000
- );
-
- await driver.wait(
- until.elementIsVisible(dropdownMenu),
- 10000
- );
-
- //Now safely get option labels
- const optionLabels = await dropdownMenu.findElements(
- By.css('li label.checkbox')
- );
-
- //Extract list values
- const actualOptions = [];
- for (const label of optionLabels) {
- const text = (await label.getText()).trim();
- if (text) {
- actualOptions.push(text);
- }
- }
-
- const expectedOptions = [
- 'Select all',
- 'US History III',
- 'English I',
- 'Algebra',
- 'Biology',
- 'Copy Move Delete Test 1',
- 'Copy Move Delete Test 2',
- 'Import Align - Concept Based 1',
- 'Import Align - Concept Based 2',
- 'Import Align - Direct Align 1',
- 'Import Align - Direct Align 2',
- 'Math Alignment Import Test',
- 'create me',
- 'Illustrative Math Test 1',
- 'Illustrative Math Test 2',
- 'Khan URL test',
- 'seesaw test',
- 'ECS-3037 On Prod TC2',
- 'ECS-3037 On Prod TC1',
- 'webinar test',
- 'Post NIght July26'
- ];
-
- //Track all errors
- const errors = [];
-
- //Length validation
- if (actualOptions.length !== expectedOptions.length) {
- errors.push(
- `Expected option count ${expectedOptions.length}; Actual ${actualOptions.length}`
- );
- }
-
- //Value-by-value validation
- expectedOptions.forEach((expected, i) => {
- if (actualOptions[i] !== expected) {
- errors.push(
- `Index ${i}: Expected "${expected}", Actual "${actualOptions[i]}"`
- );
- }
- });
-
- //Select "Algebra" from dropdown
- //Runs even if validation above already failed — errors are thrown after this,
- //so log order does not reflect when the failing check actually ran
- await driver.findElement(By.css('.show > li:nth-child(5) input')).click();
- await driver.sleep(2000);
-
- console.log('----->| NEXT ACTION: Selected correlation: Algebra');
-
- //Click away to close dropdown using executeScript to bypass interception
- await driver.executeScript(`
- document.querySelector('.col-sm-12 .multiselect-selected-text').click();
- `);
- await driver.sleep(2000);
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Related Standards options
- {
- description: 'Validate Include Related Standards options are hidden',
- action: async () => {
- const multipleChecks = 'Include Related Standards labels and dropdowns are hidden';
- const errors = [];
-
- const visibility = await driver.executeScript(`
- const elementRelStdnt = document.querySelector('#relsel');
- if (!elementRelStdnt) return { found: false };
- const style = window.getComputedStyle(elementRelStdnt);
- return {
- found: true,
- hidden: style.display === 'none',
- display: style.display
- };
- `);
- //console.log('----->| DEBUG RelStdnt visibility:', JSON.stringify(visibility));
-
- //Both label and dropdown are inside the same hideGrade div
- //so we only need to check the parent container once
- if (visibility.found && visibility.hidden) {
- console.log('Passed: Related Standards dropdown is hidden as expected');
- console.log('Passed: Best Match dropdown is hidden as expected');
- } else {
- errors.push(`Expected: Related Standards and Best Match dropdowns to be hidden; Actual: display="${visibility.display}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Select Include Related Standards checkbox',
- action: async () => {
- await driver.findElement(By.css('#doRel')).click();
- await driver.sleep(2000);
- console.log('----->| NEXT ACTION: Clicked Include Related Standards checkbox');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.css('.col-auto .multiselect-selected-text'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Related Standards dropdown did not become visible within 20 seconds');
-
- console.log('Passed: Related Standards dropdown loaded successfully');
- }
- },
-
- //NEXT ACTION
- {
- description: 'Validate alert message',
- action: async () => {
- const multipleChecks = 'Validate alert message';
- const errors = [];
-
- //Click delete button
- const element = await driver.findElement(By.css('#stdsubmit')).click();
- await driver.sleep(5000);
- console.log('----->| NEXT ACTION: Clicked Search button');
-
- //Wait for confirm dialog to appear
- const alert = await driver.wait(until.alertIsPresent(), 5000);
- console.log('----->| NEXT ACTION: Alert dialog appeared as expected');
-
- //Get alert text
- const alertText = await alert.getText();
-
- //Validate alert message text
- const expectedText = 'You must select at least one set of related standards';
- if (alertText === expectedText) {
- console.log('Passed: Alert dialog text matched as expected');
- } else {
- errors.push(`Expected: "${expectedText}"; Actual: "${alertText}"`);
- }
-
- //Throw summary before dismissing if errors found
- if (errors.length > 0) {
- await alert.dismiss(); //Cancel the delete if validation failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
-
- //Accept the alert (click OK) to proceed with deletion
- await alert.accept();
- console.log('----->| NEXT ACTION: Clicked alert message OK button');
- await driver.sleep(2000);
- }
- },
-
- //Related Standards dropdown
- {
- description: 'Validate Related Standards dropdown list and value',
- action: async () => {
- const multipleChecks = 'Related Standards dropdown list';
-
- //Locate and validate selected (collapsed) value
- const dropdownButton = await driver.findElement(
- By.css('.col-auto .multiselect-selected-text')
- );
-
- //Open dropdown - use the element directly, not findElement again
- await dropdownButton.click();
- await driver.sleep(2000);
- console.log('----->| NEXT ACTION: Clicked Related Standards dropdown');
-
- //Track all errors
- const errors = [];
-
- //Get text, font, size, and color
- const elementText = await dropdownButton.getText();
- const elementFont = await dropdownButton.getCssValue('font-family');
- const elementSize = await dropdownButton.getCssValue('font-size');
- const elementColor = await dropdownButton.getCssValue('color');
-
- //text
- if (elementText === 'None Selected') {
- console.log("Passed: None Selected default option matched as expected");
- } else {
- errors.push(`Expected option: "None Selected"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: None Selected default text font-family matched as expected');
- } else {
- errors.push(`Expected: None Selected default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: None Selected default text font-size matched as expected');
- } else {
- errors.push(`Expected: None Selected default text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: None Selected default text color matched as expected');
- } else {
- errors.push(`Expected: None Selected default text color "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //Wait for dropdown list to become visible
- const dropdownMenu = await driver.wait(
- until.elementLocated(By.css('ul.multiselect-container.dropdown-menu.show')),
- 10000
- );
-
- await driver.wait(
- until.elementIsVisible(dropdownMenu),
- 10000
- );
-
- //Now safely get option labels
- const optionLabels = await dropdownMenu.findElements(
- By.css('li label.checkbox')
- );
-
- //Extract list values
- const actualOptions = [];
- for (const label of optionLabels) {
- const text = (await label.getText()).trim();
- if (text) {
- actualOptions.push(text);
- }
- }
-
- const expectedOptions = [
- 'Select all',
- 'Alabama',
- 'Arizona',
- 'California',
- 'Florida',
- 'Georgia',
- 'Illinois',
- 'New York',
- 'Texas',
- 'Washington',
- 'Common Core State Standards',
- 'Alberta Standards',
- 'Ontario Curriculum',
- 'Australian Curriculum (ACARA) v8',
- 'New South Wales',
- 'NCSSFL-ACTFL CAN-DO STATEMENTS',
- 'WIDA Consortium (2020)',
- '5th Grade Import ECS-2732',
- 'Imported Framework Updated',
- 'ECS-2933 Testing On Prod',
- 'Widget Test',
- 'California Mathematics 1997',
- 'Georgia Archived Language Arts QA',
- 'Georgia Current Language Arts QA',
- 'Georgia Future Language Arts QA',
- 'create group test',
- 'IMport Test'
- ];
-
- //Length validation
- if (actualOptions.length !== expectedOptions.length) {
- errors.push(
- `Expected option count ${expectedOptions.length}; Actual ${actualOptions.length}`
- );
- }
-
- //Value-by-value validation
- expectedOptions.forEach((expected, i) => {
- if (actualOptions[i] !== expected) {
- errors.push(
- `Index ${i}: Expected "${expected}", Actual "${actualOptions[i]}"`
- );
- }
- });
-
- //Select "Washington" from dropdown
- await driver.findElement(By.css('.show > li:nth-child(12) input')).click();
- await driver.sleep(2000);
-
- //Select "Common Core State Standards" from dropdown
- await driver.findElement(By.css('.show > li:nth-child(14) input')).click();
- await driver.sleep(2000);
-
- //Select "California Mathematics 1997" from dropdown
- await driver.findElement(By.css('.show > li:nth-child(34) input')).click();
- await driver.sleep(2000);
-
- console.log('----->| NEXT ACTION: Selected Related Standards: Washington, Common Core State Standards, California Mathematics 1997');
-
- //Click away to close dropdown using executeScript to bypass interception
- await driver.executeScript(`
- document.querySelector('.col-auto .multiselect-selected-text').click();
- `);
- await driver.sleep(2000);
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Selected Related Standards dropdown value
- {
- description: 'Validate Show Correlations From dropdown value',
- action: async () => {
- const multipleChecks = 'Show Correlations From dropdown value';
- const selectedOption = await driver.findElement(By.css('.col-auto .multiselect-selected-text'));
-
- //Get text, font, size, and color
- const elementText = await selectedOption.getText('');
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'Washington , Common Core State Standards , California Mathematics 1997') {
- console.log("Passed: Selected Content Sets dropdown options matched as expected");
- } else {
- errors.push(`Expected option: "Washington , Common Core State Standards , California Mathematics 1997"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: Selected Content Sets dropdown text font-family matched as expected');
- } else {
- errors.push(`Expected: Selected Content Sets dropdown text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '16px') {
- console.log('Passed: Selected Content Sets dropdown text font-size matched as expected');
- } else {
- errors.push(`Expected: Selected Content Sets dropdown text font-size "16px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(33, 37, 41, 1)') {
- console.log('Passed: Selected Content Sets dropdown text color matched as expected');
- } else {
- errors.push(`Expected: Selected Content Sets dropdown text color "rgba(33, 37, 41, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //based on
- {
- description: 'Validate based on label text, font, size, and color',
- action: async () => {
- const multipleChecks = 'based on label';
- const element = await driver.findElement(By.css('.col-auto:nth-child(2)'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === 'based on') {
- console.log("Passed: based on label text matched as expected");
- } else {
- errors.push(`Expected: "based on" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: based on label font-family matched as expected');
- } else {
- errors.push(`Expected: based on label font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: based on label text font-size matched as expected');
- } else {
- errors.push(`Expected: based on label text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: based on label text color matched as expected');
- } else {
- errors.push(`Expected: based on label text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //best match dropdown
- {
- description: 'Validate best match dropdown list and value',
- action: async () => {
- const multipleChecks = 'best match Dropdown List';
- const select = await driver.findElement(By.css('.custom-select'));
-
- //Get text, font, size, and color
- const selectedOption = await select.findElement(By.css('option:checked'));
- const elementText = await selectedOption.getText();
- const elementFont = await selectedOption.getCssValue('font-family');
- const elementSize = await selectedOption.getCssValue('font-size');
- const elementColor = await selectedOption.getCssValue('color');
-
- //text
- if (elementText === 'best match') {
- console.log("Passed: best match default option matched as expected");
- } else {
- errors.push(`Expected option: "best match"; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: best match default text font-family matched as expected');
- } else {
- errors.push(`Expected: best match default text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '13px') {
- console.log('Passed: best match default text font-size matched as expected');
- } else {
- errors.push(`Expected: best match default text font-size "13px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: best match default text color matched as expected');
- } else {
- errors.push(`Expected: best match default text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- }
-
- const options = await select.findElements(By.css('option'));
- const expectedList = [
- 'best match',
- 'similar text',
- 'like concepts'
- ];
- const actual = [];
-
- //Track all errors
- const errors = [];
-
- for (const opt of options) {
- const text = (await opt.getText()).trim();
- actual.push(text);
- }
-
- if (JSON.stringify(actual) === JSON.stringify(expectedList)) {
- console.log('Passed: best match Dropdown list matched as expected');
- } else {
- errors.push(`Expected: best match Dropdown list: ${JSON.stringify(expectedList)}, Actual: ${JSON.stringify(actual)}`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //Include Related Standards info icon | SPECIAL CASE {title data-original-title}
- {
- description: 'Validate info icon',
- action: async () => {
- const multipleChecks = 'info icon';
- const errors = [];
-
- //Get both text and styles in one executeScript call
- const result = await driver.executeScript(`
- const el = document.querySelector('[data-toggle="tooltip"][data-placement="right"]');
- if (!el) return null;
- const style = window.getComputedStyle(el);
- return {
- tooltipText: el.getAttribute('data-original-title'),
- fontFamily: style.getPropertyValue('font-family'),
- fontSize: style.getPropertyValue('font-size'),
- color: style.getPropertyValue('color'),
- backgroundColor: style.getPropertyValue('background-color')
- };
- `);
- //console.log('----->| DEBUG result:', JSON.stringify(result));
-
- //text
- if (result.tooltipText === '"best match" uses a combination of similar text and like concepts') {
- console.log('Passed: Tooltip text matched as expected');
- } else {
- errors.push(`Expected: Tooltip text: '"best match" uses a combination of similar text and like concepts'; Actual: "${result.tooltipText}"`);
- }
-
- //font
- if (result.fontFamily === 'Poppins, sans-serif') {
- console.log('Passed: Info icon text font-family matched as expected');
- } else {
- errors.push(`Expected: Info icon font-family "Poppins, sans-serif"; Actual: "${result.fontFamily}"`);
- }
-
- //size
- if (result.fontSize === '13px') {
- console.log('Passed: Info icon text font-size matched as expected');
- } else {
- errors.push(`Expected: Info icon font-size "13px"; Actual: "${result.fontSize}"`);
- }
-
- //color
- if (result.color === 'rgb(40, 39, 90)') {
- console.log('Passed: Info icon text color matched as expected');
- } else {
- errors.push(`Expected: Info icon color rgb(40, 39, 90)"; Actual: "${result.color}"`);
- }
-
- //background-color
- if (result.backgroundColor === 'rgba(0, 0, 0, 0)') {
- console.log('Passed: Info icon background-color matched as expected');
- } else {
- errors.push(`Expected: Info icon background-color "rgba(0, 0, 0, 0)"; Actual: "${result.backgroundColor}"`);
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //note
- {
- description: 'Validate note text, font, size, and color',
- action: async () => {
- const multipleChecks = 'note label';
- const element = await driver.findElement(By.css('em'));
-
- //Get text, font, size, and color
- const elementText = await element.getText();
- const elementFont = await element.getCssValue('font-family');
- const elementSize = await element.getCssValue('font-size');
- const elementColor = await element.getCssValue('color');
-
- //Track all errors
- const errors = [];
-
- //text
- if (elementText === '** note - including related standards may cause increased page load times') {
- console.log("Passed: ** note text matched as expected");
- } else {
- errors.push(`Expected: "** note - including related standards may cause increased page load times" label text; Actual: "${elementText}"`);
- }
-
- //font
- if (elementFont === 'Poppins, sans-serif') {
- console.log('Passed: ** note text font-family matched as expected');
- } else {
- errors.push(`Expected: ** note text font-family "DM Serif Display, serif"; Actual: ${elementFont}`);
- }
-
- //size
- if (elementSize === '10.4px') {
- console.log('Passed: ** note text font-size matched as expected');
- } else {
- errors.push(`Expected: **n ote text font-size "10.4px"; Actual: "${elementSize}"`);
- }
-
- //color
- if (elementColor === 'rgba(40, 39, 90, 1)') {
- console.log('Passed: ** note text color matched as expected');
- } else {
- errors.push(`Expected: ** note text color "rgba(40, 39, 90, 1)"; Actual: "${elementColor}"`);
- errors.push(message)
- }
-
- //Throw summary if any validation failed
- if (errors.length > 0) {
- //Add summary line only when multiple checks failed
- if (errors.length > 1) {
- errors.unshift(`${multipleChecks} - Multiple validation checks did not pass`);
- }
-
- //Throw collected messages — catch() will prefix with "FAILED:"
- throw new Error(errors.join('\n'));
- }
- }
- },
-
- //NEXT ACTION
- {
- description: 'Click Search button',
- action: async () => {
- await driver.findElement(By.css('#stdsubmit')).click();
- console.log('----->| NEXT ACTION: Clicked Search button');
-
- //Wait for page to load completely
- await driver.wait(async () => {
- const readyState = await driver.executeScript('return document.readyState');
- return readyState === 'complete';
- }, 30000, 'Standards search page did not fully load within 30 seconds');
- console.log('Passed: Standards Search Page loaded successfully');
-
- //Wait until the modal title is located AND visible
- await driver.wait(async () => {
- try {
- const element = await driver.findElement(By.css('.breadcrumb-item:nth-child(2)'));
- return await element.isDisplayed();
- } catch (e) {
- return false; //Element not ready yet, keep waiting
- }
- }, 20000, 'Standards breadcrumb label did not become visible within 20 seconds');
-
- console.log('Passed: Standards breadcrumb label loaded successfully');
- }
- },
-
- ...myStandardsSearch_AlignedContent(driver),
-
-];
-
-const logStep = (worksheet, stepDescription, status, stepIndex, timestamp, screenshotPath) => {
- const json_data = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
- json_data.push([stepIndex, stepDescription, status, timestamp, screenshotPath]);
- return XLSX.utils.aoa_to_sheet(json_data);
-};
-
-const takeScreenshot = async (driver, stepIndex, stepDescription) => {
- const screenshot = await driver.takeScreenshot();
-
- const dir = path.join('screenshots', 'dashboardMyStandardsResults');
-
- const screenshotFileName = `step_${stepIndex}_${stepDescription.replace(/\s+/g, '_')}.png`;
- const screenshotPath = path.join(dir, screenshotFileName);
- fs.writeFileSync(screenshotPath, screenshot, 'base64');
- return screenshotPath;
-};
-
-const clearOldResults = () => {
- //Remove old screenshots
- const screenshotDir = path.join('screenshots', 'dashboardMyStandardsResults');
- if (fs.existsSync(screenshotDir)) {
- fs.rmSync(screenshotDir, { recursive: true, force: true });
- }
- fs.mkdirSync(screenshotDir, { recursive: true });
-
- //Remove old Excel file
- if (fs.existsSync('dashboardMyStandardsResults.xlsx')) {
- fs.unlinkSync('dashboardMyStandardsResults.xlsx');
- }
-};
-
-try {
- //Initialize workbook and worksheet
- clearOldResults();
-
- //Initialize workbook and worksheet
- workbook = XLSX.utils.book_new();
- worksheet = XLSX.utils.aoa_to_sheet([
- ['Step Number', 'Step Description', 'Status', 'Timestamp', 'Screenshot']
- ]);
- XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
-
- //Log test start time
- worksheet = logStep(worksheet, 'Test Start', 'Started', '', startTime, '');
-
- let allStepsPassed = true;
-
- const failedSteps = []; //Track failed steps
-
- for (const step of steps) {
- const stepIndex = steps.indexOf(step) + 1;
- const timestamp = new Date().toISOString();
-
- try {
- await step.action();
- worksheet = logStep(
- worksheet,
- step.description,
- 'Passed',
- stepIndex,
- timestamp,
- null
- );
-
- } catch (error) {
- const screenshotPath = await takeScreenshot(
- driver,
- stepIndex,
- `${step.description}_Failed`
- );
-
- worksheet = logStep(
- worksheet,
- step.description,
- 'Failed',
- stepIndex,
- timestamp,
- screenshotPath
- );
-
- console.error(`Step ${stepIndex} FAILED: ${error.message}`);
- failedSteps.push(`Step ${stepIndex}: ${step.description} - ${error.message}`); //Track failed step
- testStatus = 'Failed';
- allStepsPassed = false;
- }
- }
-
- if (allStepsPassed) {
- console.log('------------->| THE END |<-------------');
- console.log('PASSED: DASHBOARD - My Standards Widget(dashboardMyStandards); All test steps completed successfully');
- testStatus = 'Passed';
- } else {
- console.log('------------->| THE END |<-------------');
- console.log('FAILED: DASHBOARD - My Standards Widget(dashboardMyStandards); One or more test steps failed');
- console.log('FAILED STEPS:');
- failedSteps.forEach(step => console.error(` ✗ ${step}`));
- testStatus = 'Failed';
- }
-
- //Log test end time
- const endTime = new Date().toISOString();
- worksheet = logStep(worksheet, 'Test End', testStatus, '', endTime, '');
-
- //Write the updated worksheet back to the workbook and save it
- workbook.Sheets['Sheet1'] = worksheet;
- XLSX.writeFile(workbook, 'dashboardMyStandardsResults.xlsx');
-} finally {
- await driver.quit();
-}
- })();
-}
-
-export default dashboardMyStandards;
diff --git a/tests/exactLandingPage.js b/tests/exactLandingPage.js
index 8a9fb4c..8af8b79 100644
--- a/tests/exactLandingPage.js
+++ b/tests/exactLandingPage.js
@@ -4817,7 +4817,7 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
-const resultsFile = path.join('results', 'exactLandingPageResults.xlsx');
+const resultsFile = path.join('results', 'exactLandingPage.xlsx');
const clearOldResults = () => {
//Remove old screenshots
diff --git a/tests/myStandardsSearchAlignedContent.js b/tests/myStandardsSearchAlignedContent.js
index 4b65030..c192400 100644
--- a/tests/myStandardsSearchAlignedContent.js
+++ b/tests/myStandardsSearchAlignedContent.js
@@ -3,8 +3,6 @@ import { Options as ChromeOptions } from 'selenium-webdriver/chrome.js';
import fs from 'fs';
import XLSX from 'xlsx';
import path from 'path';
-import { brotliCompress } from 'zlib';
-import e from 'express';
//Export JUST the steps so other scripts can import them
export const myStandardsSearch_AlignedContent = (driver) => [
@@ -7752,10 +7750,10 @@ export const myStandardsSearch_AlignedContent = (driver) => [
const errors = [];
//text
- if (elementText === 'Aligned Content 4') {
- console.log('Passed: Standard Code 2, Aligned Content 4 button text matched as expected');
+ if (elementText === 'Aligned Content 5') {
+ console.log('Passed: Standard Code 2, Aligned Content 5 button text matched as expected');
} else {
- errors.push(`Expected: "Aligned Content 4"; Actual: "${elementText}"`);
+ errors.push(`Expected: "Aligned Content 5"; Actual: "${elementText}"`);
}
//font
@@ -8095,14 +8093,14 @@ const myStandardsSearch = (req, res) => {
return readyState === 'complete';
}, 30000, 'ExACT Dashboard did not fully load within 30 seconds');
- /*Wait for the dashboard container to exist in DOM
+ //Wait for the dashboard container to exist in DOM
await driver.wait(
until.elementLocated(By.css('.gap-idle-wrap > img')),
30000,
'Dashboard image did not appear within 30 seconds'
);
- Wait for it to be visible
+ //Wait for it to be visible
await driver.wait(async () => {
try {
const img = await driver.findElement(By.css('.gap-idle-wrap > img'));
@@ -8110,7 +8108,7 @@ const myStandardsSearch = (req, res) => {
} catch (e) {
return false;
}
- }, 30000, 'Dashboard image did not become visible within 30 seconds');*/
+ }, 30000, 'Dashboard image did not become visible within 30 seconds');
//Wait for any loading spinners to disappear
await driver.wait(async () => {
@@ -8314,18 +8312,21 @@ const takeScreenshot = async (driver, stepIndex, stepDescription) => {
return screenshotPath;
};
+const resultsFile = path.join('results', 'myStandardsSearchAlignedContentResults.xlsx');
+
const clearOldResults = () => {
//Remove old screenshots
- const screenshotDir = path.join('screenshots', 'myStandardsSearchAlignedContentResults');
+ const screenshotDir = path.join('screenshots', 'myStandardsSearchAlignedContent');
if (fs.existsSync(screenshotDir)) {
fs.rmSync(screenshotDir, { recursive: true, force: true });
}
fs.mkdirSync(screenshotDir, { recursive: true });
//Remove old Excel file
- if (fs.existsSync('myStandardsSearchAlignedContentResults.xlsx')) {
- fs.unlinkSync('myStandardsSearchAlignedContentResults.xlsx');
+ if (fs.existsSync(resultsFile)) {
+ fs.unlinkSync(resultsFile);
}
+ fs.mkdirSync('results', { recursive: true });
};
try {
@@ -8352,13 +8353,15 @@ try {
try {
await step.action();
+
+ //Log a successful step with no screenshot
worksheet = logStep(
worksheet,
step.description,
'Passed',
stepIndex,
timestamp,
- null
+ null //No screenshot for passed steps
);
} catch (error) {
@@ -8402,11 +8405,11 @@ try {
//Write the updated worksheet back to the workbook and save it
workbook.Sheets['Sheet1'] = worksheet;
- XLSX.writeFile(workbook, 'myStandardsSearchAlignedContentResults.xlsx');
+ XLSX.writeFile(workbook, resultsFile);
} finally {
await driver.quit();
}
})();
-};
+}
export default myStandardsSearch;