docsify/test/integration/docs.test.js
John Hildenbiddle c49c39a4a2
refactor: Update test environments and lint configuration (#1736)
* Update test environments and lint configuration

Update Jest (unit + integration) and Playwright (e2e) test environments. Includes stability improvements for e2e tests using newer, more stable methods per the Playwright docs.

- Update Jest 26 => 27
- Update Jest-related libs (babel parser)
- Update Playwright 1.8 => Playwright Test 1.18
- Update GitHub CI (action versions, job parallelization, and matrices)
- Update ESLint 5 => 8
- Update ESLint-related libs (parser, prettier, Jest, Playwright)
- Fix test failures on M1-based Macs
- Fix e2e stability issues by replacing PW $ method calls
- Fix ESLint errors
- Fix incorrect CI flag on Jest runs (-ci => --ci)
- Refactor e2e test runner from Jest to Playwright Test
- Refactor e2e test files for Playwright Test
- Refactor fix-lint script name to lint:fix for consistency
- Refactor npm scripts order for readability
- Remove unnecessary configs and libs
- Remove example image snapshots
2022-01-30 21:40:21 -06:00

67 lines
1.8 KiB
JavaScript

const docsifyInit = require('../helpers/docsify-init');
// Suite
// -----------------------------------------------------------------------------
describe('Docs Site', function () {
// Tests
// ---------------------------------------------------------------------------
test('coverpage renders and is unchanged', async () => {
// Override Math.random implementation to prevent random gradient values
// used as background image from causing test to fail
const mathSpy = jest.spyOn(Math, 'random').mockReturnValue(0.5);
await docsifyInit({
config: {
coverpage: 'docs/_coverpage.md',
},
markdown: {
homepage: '# Hello World',
},
waitForSelector: '.cover-main > *',
});
const coverpageElm = document.querySelector('section.cover');
// Test snapshots
expect(mathSpy).toHaveBeenCalled();
expect(coverpageElm).not.toBeNull();
expect(coverpageElm.outerHTML).toMatchSnapshot();
});
test('sidebar renders and is unchanged', async () => {
await docsifyInit({
config: {
loadSidebar: 'docs/_sidebar.md',
},
markdown: {
homepage: '# Hello World',
},
waitForSelector: '.sidebar-nav > ul',
});
const sidebarElm = document.querySelector('.sidebar');
// Test snapshots
expect(sidebarElm).not.toBeNull();
expect(sidebarElm.outerHTML).toMatchSnapshot();
});
test('navbar renders and is unchanged', async () => {
await docsifyInit({
config: {
loadNavbar: 'docs/_navbar.md',
},
markdown: {
homepage: '# Hello World',
},
waitForSelector: '.app-nav > ul',
});
const navbarElm = document.querySelector('nav.app-nav');
// Test snapshots
expect(navbarElm).not.toBeNull();
expect(navbarElm.outerHTML).toMatchSnapshot();
});
});