mirror of
https://github.com/docsifyjs/docsify.git
synced 2025-12-08 19:55:52 +00:00
BREAKING: The new project layout might break in some tooling setups. We've added an exports field to `package.json` to specify where statements like `import ... from 'docsify'` will import from, and left the `main` and `unpkg` fields as-is for backwards compatibility with the global <script> import method. Most people who use a non-module `<script>` tag to import Docsify will not notice a difference. Anyone else who is importing Docsify into a specilized build setup using `import` statements has a chance of being broken, so we've marked this as BREAKING.
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
import docsifyInit from '../helpers/docsify-init.js';
|
|
import { test, expect } from './fixtures/docsify-init-fixture.js';
|
|
|
|
test.describe('Configuration options', () => {
|
|
test('catchPluginErrors:true (handles uncaught errors)', async ({ page }) => {
|
|
let consoleMsg, errorMsg;
|
|
|
|
page.on('console', msg => (consoleMsg = msg.text()));
|
|
page.on('pageerror', err => (errorMsg = err.message));
|
|
|
|
await docsifyInit({
|
|
config: {
|
|
catchPluginErrors: true,
|
|
plugins: [
|
|
function (hook, vm) {
|
|
hook.init(function () {
|
|
// eslint-disable-next-line no-undef
|
|
fail();
|
|
});
|
|
hook.beforeEach(function (markdown) {
|
|
return `${markdown}\n\nbeforeEach`;
|
|
});
|
|
},
|
|
],
|
|
},
|
|
markdown: {
|
|
homepage: '# Hello World',
|
|
},
|
|
// _logHTML: true,
|
|
});
|
|
|
|
const mainElm = page.locator('#main');
|
|
|
|
expect(errorMsg).toBeUndefined();
|
|
expect(consoleMsg).toContain('Docsify plugin error');
|
|
await expect(mainElm).toContainText('Hello World');
|
|
await expect(mainElm).toContainText('beforeEach');
|
|
});
|
|
|
|
test('catchPluginErrors:false (throws uncaught errors)', async ({ page }) => {
|
|
let consoleMsg, errorMsg;
|
|
|
|
page.on('console', msg => (consoleMsg = msg.text()));
|
|
page.on('pageerror', err => (errorMsg = err.message));
|
|
|
|
await docsifyInit({
|
|
config: {
|
|
catchPluginErrors: false,
|
|
plugins: [
|
|
function (hook, vm) {
|
|
hook.ready(function () {
|
|
// eslint-disable-next-line no-undef
|
|
fail();
|
|
});
|
|
},
|
|
],
|
|
},
|
|
markdown: {
|
|
homepage: '# Hello World',
|
|
},
|
|
// _logHTML: true,
|
|
});
|
|
|
|
expect(consoleMsg).toBeUndefined();
|
|
expect(errorMsg).toContain('fail');
|
|
});
|
|
});
|