Skip to content

Commit

Permalink
chore: Experiment wdiov9 isDisplayed on display:contents
Browse files Browse the repository at this point in the history
  • Loading branch information
pan-kot committed Jan 23, 2025
1 parent 372abbd commit fa01645
Show file tree
Hide file tree
Showing 23 changed files with 2,868 additions and 453 deletions.
3,208 changes: 2,777 additions & 431 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"start:watch": "gulp watch",
"start:dev": "cross-env NODE_ENV=development webpack serve --config pages/webpack.config.js",
"start:integ": "cross-env NODE_ENV=development webpack serve --config pages/webpack.config.integ.js",
"prepare": "husky"
"prepare": "husky",
"postinstall": "node ./scripts/install-peer-dependency.js browser-test-tools:chore-webdriverio9"
},
"dependencies": {
"@cloudscape-design/collection-hooks": "^1.0.0",
Expand Down Expand Up @@ -50,6 +51,9 @@
"react-dom": "^16.8 || ^17 || ^18"
},
"devDependencies": {
"@wdio/globals": "^9.4.1",
"@wdio/types": "^9.2.2",
"webdriverio": "^9.4.1",
"@babel/core": "^7.23.7",
"@babel/plugin-syntax-typescript": "^7.23.3",
"@cloudscape-design/browser-test-tools": "^3.0.0",
Expand Down
65 changes: 65 additions & 0 deletions scripts/install-peer-dependency.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env node
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

// Can be used in postinstall script like so:
// "postinstall": "node ./scripts/install-peer-dependency.js collection-hooks:property-filter-token-groups"
// where "collection-hooks" is the package to fetch and "property-filter-token-groups" is the branch name in GitHub.

const { execSync } = require('child_process');
const path = require('path');
const os = require('os');

const artifactPathMap = {
components: '/lib/components/*',
'board-components': '/lib/components/*',
};

const args = process.argv.slice(2);
if (args.length < 1) {
console.error('Usage: install-peer-dependency.js <package-name>:<target-branch>');
process.exit(1);
}
const [packageName, targetBranch] = args[0].split(':');
const targetRepository = `https://github.com/cloudscape-design/${packageName}.git`;
const nodeModulesPackagePath = path.join(process.cwd(), 'node_modules', '@cloudscape-design', packageName);
const tempDir = path.join(os.tmpdir(), `temp-${packageName}`);
const artifactPath = artifactPathMap[packageName] ?? '/lib/*';

// Clone the repository and checkout the branch
console.log(`Cloning ${packageName}:${targetBranch}...`);
execCommand(`git clone ${targetRepository} ${tempDir}`);
process.chdir(tempDir);
execCommand(`git checkout ${targetBranch}`);

// Install dependencies and build
console.log(`Installing dependencies and building ${packageName}...`);
execCommand('npm install');
execCommand('npm run build');

// Remove existing peer dependency in node_modules
console.log(`Removing existing ${packageName} from node_modules...`);
execCommand(`rm -rf ${nodeModulesPackagePath}`);

// Copy built peer dependency to node_modules
console.log(`Copying build ${targetRepository} to node_modules...`);
execCommand(`mkdir -p ${nodeModulesPackagePath}`);
execCommand(`cp -R ${tempDir}${artifactPath} ${nodeModulesPackagePath}`);

// Clean up
console.log('Cleaning up...');
execCommand(`rm -rf ${tempDir}`);

console.log(`${packageName} has been successfully installed from branch ${targetBranch}!`);

function execCommand(command, options = {}) {
try {
execSync(command, { stdio: 'inherit', ...options });
} catch (error) {
console.error(`Error executing command: ${command}`);
console.error(`Error message: ${error.message}`);
console.error(`Stdout: ${error.stdout && error.stdout.toString()}`);
console.error(`Stderr: ${error.stderr && error.stderr.toString()}`);
throw error;
}
}
2 changes: 1 addition & 1 deletion src/__a11y__/a11y-app-layout-toolbar.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ describe('A11y checks for app layout toolbar', () => {
useBrowser(async browser => {
const page = new A11yPageObject(browser);
await browser.url(url);
await page.waitForVisible('main');
await page.waitForVisible('h1');
await page.assertNoAxeViolations();
})
);
Expand Down
2 changes: 1 addition & 1 deletion src/__a11y__/misc.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ test(
useBrowser(async browser => {
const page = new A11yPageObject(browser);
await browser.url('#/dark/undefined-texts');
await page.waitForVisible('main');
await page.waitForVisible('h1');
await expect(page.getUndefinedTexts()).resolves.toEqual([
'This page contains undefined strings',
'aria-label: undefined button',
Expand Down
2 changes: 1 addition & 1 deletion src/__a11y__/run-a11y-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function setupTest(url: string, testFn: (page: A11yPageObject) => Promise<void>)
return useBrowser(async browser => {
const page = new A11yPageObject(browser);
await browser.url(url);
await page.waitForVisible('main');
await page.waitForVisible('h1');
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/app-layout-drawers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ const setupTest = (
appLayoutToolbar: `${theme === 'refresh-toolbar'}`,
}).toString();
await browser.url(`#/light/app-layout/with-drawers?${params}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ function setupTest(
);
await page.setWindowSize(mobile ? viewports.mobile : viewports.desktop);
await browser.url(`#/light/app-layout/${pageName}?${params}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ describe.each(['refresh', 'refresh-toolbar'] as Theme[])('%s', theme => {
const page = new AppLayoutRefreshNotoficationsPage(browser);
await page.setWindowSize({ ...viewports.desktop, width: viewportWidth });
await browser.url(`#/light/app-layout/refresh-content-width/?${getUrlParams(theme)}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ describe.each(['refresh', 'refresh-toolbar'] as Theme[])('%s', theme => {
const page = new AppLayoutRefreshEdgeControlsPage(browser);
await page.setWindowSize(viewports.desktop);
await browser.url(`#/light/app-layout/disable-paddings-edge-controls/?${getUrlParams(theme)}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ describe.each(['refresh', 'refresh-toolbar'] as Theme[])('%s', theme => {
await browser.url(
`#/light/app-layout/notifications-refresh/?${getUrlParams(theme)}${removeNotifications ? `&removeNotifications` : ''}`
);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
4 changes: 2 additions & 2 deletions src/app-layout/__integ__/app-layout-split-panel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as const)('%s', theme =>
appLayoutToolbar: `${theme === 'refresh-toolbar'}`,
});
await browser.url(`${url}?${params.toString()}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down Expand Up @@ -95,7 +95,7 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as const)('%s', theme =>
const page = new AppLayoutSplitViewPage(browser);
await page.setWindowSize(viewports.desktop);
await browser.url(`#/light/app-layout/with-split-panel?visualRefresh=false&splitPanelPosition=side`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await page.openPanel();
await expect(page.getPanelPosition()).resolves.toEqual('side');
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as Theme[])('%s', theme
const page = new AppLayoutStickyPage(browser);
await page.setWindowSize(viewport);
await browser.url(url);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/awsui-applayout-sticky.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as Theme[])('%s', theme
const page = new AppLayoutStickyPage(browser);
await page.setWindowSize(viewport);
await browser.url(`#/light/app-layout/with-sticky-notifications/?${getUrlParams(theme)}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/awsui-applayout.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const mobileSelector = `.${testutilStyles['mobile-bar']}`;
class AppLayoutPage extends BasePageObject {
async visit(url: string) {
await this.browser.url(url);
await this.waitForVisible(wrapper.findContentRegion().toSelector());
await this.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
}

getNavPosition() {
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/global-breadcrumbs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ function setupTest({ url }: { url: string }, testFn: (page: GlobalBreadcrumbsPag
return useBrowser(async browser => {
const page = new GlobalBreadcrumbsPage(browser);
await browser.url(url);
await page.waitForVisible(wrapper.findAppLayout().findContentRegion().toSelector());
await page.waitForVisible(wrapper.findAppLayout().findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/runtime-drawers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as Theme[])('%s', theme
splitPanelPosition: 'side',
})}`
);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/app-layout/__integ__/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export const setupTest = (
...(splitPanelPosition ? { splitPanelPosition } : {}),
}).toString();
await browser.url(`#/light/app-layout/with-drawers?${params}`);
await page.waitForVisible(wrapper.findContentRegion().toSelector());
await page.waitForVisible(wrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});

Expand Down
2 changes: 1 addition & 1 deletion src/container/__integ__/awsui-applayout-sticky.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function setupTest({ viewport = viewports.desktop }, testFn: (page: AppLayoutSti
const page = new AppLayoutStickyPage(browser);
await page.setWindowSize(viewport);
await browser.url('#/light/container/sticky-with-app-layout?visualRefresh=false');
await page.waitForVisible(appLayoutWrapper.findContentRegion().toSelector());
await page.waitForVisible(appLayoutWrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe.each(['classic', 'visualRefresh'])('In %s', type => {
await browser.url(
`#/light/app-layout/legacy-table-sticky-notifications/?visualRefresh=${type === 'visualRefresh'}`
);
await page.waitForVisible(appLayoutWrapper.findContentRegion().toSelector());
await page.waitForVisible(appLayoutWrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/property-filter/__a11y__/token-editor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function setupTest(testFn: (page: A11yPageObject) => Promise<void>) {
return useBrowser(async browser => {
const page = new A11yPageObject(browser);
await browser.url('#/light/property-filter/async-loading.integ?token=property');
await page.waitForVisible('main');
await page.waitForVisible('h1');
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/property-filter/__integ__/async-loading.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ function setupTest(
return useBrowser(async browser => {
const page = new AsyncPropertyFilterPage(browser);
await browser.url(`#/light/property-filter/async-loading.integ?asyncProperties=${asyncProperties}&token=${token}`);
await page.waitForVisible('main');
await page.waitForVisible('h1');
await testFn(page);
});
}
Expand Down
2 changes: 1 addition & 1 deletion src/tabs/__integ__/tabs-in-help-panel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const setupTest = (visualRefresh = false, testFn: (page: BasePageObject) => Prom
return useBrowser(async browser => {
const page = new BasePageObject(browser);
await browser.url(`#/light/tabs/in-app-layout-help-panel/?${visualRefresh ? 'visualRefresh=true' : ''}`);
await page.waitForVisible(appLayoutWrapper.findContentRegion().toSelector());
await page.waitForVisible(appLayoutWrapper.findContentRegion().find('h1').toSelector());
await testFn(page);
});
};
Expand Down

0 comments on commit fa01645

Please sign in to comment.