forked from TiddlyWiki/TiddlyWiki5
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for running in-browser tests via playwright in GitHub CLI (…
…TiddlyWiki#7820) * Add support for running in-browser tests via playwright in GitHub CLI * `ci.yml` was updated to store the report so that it can be inspected on failure * `ci-test.sh` was added as an expansion to `test.sh` which installs and runs playwright * `playwright.spec.js` does the actual verification of opening the test TW edition in browser, waiting for the tests to finish and then verifying it has indeed passed * `playwright.config.js` Playwrifht configuration * Add support for running in-browser tests via playwright in GitHub CLI * `ci.yml` was updated to store the report so that it can be inspected on failure * `ci-test.sh` was added as an expansion to `test.sh` which installs and runs playwright * `playwright.spec.js` does the actual verification of opening the test TW edition in browser, waiting for the tests to finish and then verifying it has indeed passed * `playwright.config.js` Playwrifht configuration * Fix file permissions for `ci-test.sh` * Increased node version for github actions to support playwright * Add installation of the required @playwright/test library during CI test execution
- Loading branch information
1 parent
902c7f5
commit 4b56cb4
Showing
5 changed files
with
98 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,4 +5,6 @@ | |
tmp/ | ||
output/ | ||
node_modules/ | ||
|
||
/test-results/ | ||
/playwright-report/ | ||
/playwright/.cache/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/bin/bash | ||
|
||
# test TiddlyWiki5 for tiddlywiki.com | ||
|
||
npm install playwright @playwright/test | ||
npx playwright install chromium firefox --with-deps | ||
|
||
node ./tiddlywiki.js \ | ||
./editions/test \ | ||
--verbose \ | ||
--version \ | ||
--rendertiddler $:/core/save/all test.html text/plain \ | ||
--test \ | ||
|| exit 1 | ||
|
||
npx playwright test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
const { test, expect } = require('@playwright/test'); | ||
const {resolve} = require('path'); | ||
|
||
const indexPath = resolve(__dirname, 'output', 'test.html'); | ||
const crossPlatformIndexPath = indexPath.replace(/^\/+/, ''); | ||
|
||
|
||
test('get started link', async ({ page }) => { | ||
// The tests can take a while to run | ||
const timeout = 1000 * 30; | ||
test.setTimeout(timeout); | ||
|
||
// Load the generated test TW html | ||
await page.goto(`file:///${crossPlatformIndexPath}`); | ||
|
||
// Sanity check | ||
await expect(page.locator('.tc-site-title'), "Expected correct page title to verify the test page was loaded").toHaveText('TiddlyWiki5'); | ||
|
||
// Wait for jasmine results bar to appear | ||
await expect(page.locator('.jasmine-overall-result'), "Expected jasmine test results bar to be present").toBeVisible({timeout}); | ||
|
||
// Assert the tests have passed | ||
await expect(page.locator('.jasmine-overall-result.jasmine-failed'), "Expected jasmine tests to not have failed").not.toBeVisible(); | ||
await expect(page.locator('.jasmine-overall-result.jasmine-passed'), "Expected jasmine tests to have passed").toBeVisible(); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
const { defineConfig, devices } = require('@playwright/test'); | ||
|
||
/** | ||
* @see https://playwright.dev/docs/test-configuration | ||
*/ | ||
module.exports = defineConfig({ | ||
testDir: './editions/test/', | ||
|
||
// Allow parallel tests | ||
fullyParallel: true, | ||
|
||
// Prevent accidentally committed "test.only" from wrecking havoc | ||
forbidOnly: !!process.env.CI, | ||
|
||
// Do not retry tests on failure | ||
retries: 0, | ||
|
||
// How many parallel workers | ||
workers: process.env.CI ? 1 : undefined, | ||
|
||
// Reporter to use. See https://playwright.dev/docs/test-reporters | ||
reporter: 'html', | ||
|
||
// Settings shared with all the tests | ||
use: { | ||
// Take a screenshot when the test fails | ||
screenshot: { | ||
mode: 'only-on-failure', | ||
fullPage: true | ||
} | ||
}, | ||
|
||
/* Configure projects for major browsers */ | ||
projects: [ | ||
{ | ||
name: 'chromium', | ||
use: { ...devices['Desktop Chrome'] }, | ||
}, | ||
|
||
{ | ||
name: 'firefox', | ||
use: { ...devices['Desktop Firefox'] }, | ||
} | ||
], | ||
}); | ||
|