diff --git a/packages/vue/examples/mocks/commits.js b/packages/vue/examples/__tests__/commits.mock.ts similarity index 99% rename from packages/vue/examples/mocks/commits.js rename to packages/vue/examples/__tests__/commits.mock.ts index b375839a..8ec7b558 100644 --- a/packages/vue/examples/mocks/commits.js +++ b/packages/vue/examples/__tests__/commits.mock.ts @@ -1,4 +1,4 @@ -window.MOCKS = { +export default { master: [ { sha: 'd1527fbee422c7170e56845e55b49c4fd6de72a7', diff --git a/packages/vue/examples/__tests__/commits.spec.ts b/packages/vue/examples/__tests__/commits.spec.ts index 68db6540..96a31505 100644 --- a/packages/vue/examples/__tests__/commits.spec.ts +++ b/packages/vue/examples/__tests__/commits.spec.ts @@ -1,5 +1,6 @@ import path from 'path' import { setupPuppeteer } from './e2eUtils' +import mocks from './commits.mock' describe('e2e: commits', () => { const { page, click, count, text, isChecked } = setupPuppeteer() @@ -7,9 +8,25 @@ describe('e2e: commits', () => { async function testCommits(apiType: 'classic' | 'composition') { const baseUrl = `file://${path.resolve( __dirname, - `../${apiType}/commits.html#test` + `../${apiType}/commits.html` )}` + // intercept and mock the response to avoid hitting the actual API + await page().setRequestInterception(true) + page().on('request', req => { + const match = req.url().match(/&sha=(.*)$/) + if (!match) { + req.continue() + } else { + req.respond({ + status: 200, + contentType: 'application/json', + headers: { 'Access-Control-Allow-Origin': '*' }, + body: JSON.stringify(mocks[match[1] as 'master' | 'sync']) + }) + } + }) + await page().goto(baseUrl) await page().waitFor('li') expect(await count('input')).toBe(2) diff --git a/packages/vue/examples/__tests__/e2eUtils.ts b/packages/vue/examples/__tests__/e2eUtils.ts index e8c7e5f6..b39f01ff 100644 --- a/packages/vue/examples/__tests__/e2eUtils.ts +++ b/packages/vue/examples/__tests__/e2eUtils.ts @@ -11,6 +11,12 @@ export function setupPuppeteer() { beforeEach(async () => { browser = await puppeteer.launch(puppeteerOptions) page = await browser.newPage() + + page.on('console', e => { + if (e.type() === 'error') { + console.error(`Error from Puppeteer-loaded page:`, e) + } + }) }) afterEach(async () => { diff --git a/packages/vue/examples/classic/commits.html b/packages/vue/examples/classic/commits.html index d44cab4f..d88f0e28 100644 --- a/packages/vue/examples/classic/commits.html +++ b/packages/vue/examples/classic/commits.html @@ -1,5 +1,4 @@ -