From 5c2f4715e65d2f3066a582b2d25b7ecf1f8573bb Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 30 Aug 2017 18:48:37 +0430 Subject: [PATCH] add tests for font preload --- test/fixtures/with-config/assets/app.css | 12 ++++++++++++ test/fixtures/with-config/assets/roboto.woff2 | Bin 0 -> 10560 bytes test/fixtures/with-config/nuxt.config.js | 7 ++++++- test/with-config.test.js | 12 ++++++++---- 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/with-config/assets/roboto.woff2 diff --git a/test/fixtures/with-config/assets/app.css b/test/fixtures/with-config/assets/app.css index f69fcd8bbc..6b41464a8d 100755 --- a/test/fixtures/with-config/assets/app.css +++ b/test/fixtures/with-config/assets/app.css @@ -1,3 +1,15 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/roboto.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} + +body { + font-family: 'Roboto'; +} + .global-css-selector { color: red; } diff --git a/test/fixtures/with-config/assets/roboto.woff2 b/test/fixtures/with-config/assets/roboto.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..555f98b12050685859ec09a1cfac15cf528fd2ef GIT binary patch literal 10560 zcmV-GDZkctPew8T0RR9104YEK4gdfE08iim04V1G0RR9100000000000000000000 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 ORSVkc%!&m!0001EDr!3b literal 0 HcmV?d00001 diff --git a/test/fixtures/with-config/nuxt.config.js b/test/fixtures/with-config/nuxt.config.js index adf8eac489..a17928867e 100644 --- a/test/fixtures/with-config/nuxt.config.js +++ b/test/fixtures/with-config/nuxt.config.js @@ -27,7 +27,7 @@ module.exports = { string: 'Nuxt.js' }, build: { - extractCSS: true, + // extractCSS: true, publicPath: '/orion/', analyze: { analyzerMode: 'disabled', @@ -46,6 +46,11 @@ module.exports = { http2: { push: true }, + bundleRenderer: { + shouldPreload: (file, type) => { + return ['script', 'style', 'font'].includes(type) + } + }, static: { maxAge: '1y' } diff --git a/test/with-config.test.js b/test/with-config.test.js index 2dacdca53f..c92e2b5fd2 100644 --- a/test/with-config.test.js +++ b/test/with-config.test.js @@ -26,9 +26,13 @@ test('/', async t => { }) test('/ (global styles inlined)', async t => { - // const { html } = await nuxt.renderRoute('/') - // t.true(html.includes('.global-css-selector')) - t.pass() + const { html } = await nuxt.renderRoute('/') + t.true(html.includes('.global-css-selector')) +}) + +test('/ (preload fonts)', async t => { + const { html } = await nuxt.renderRoute('/') + t.true(html.includes(' { @@ -87,7 +91,7 @@ test('/test/about-bis (added with extendRoutes)', async t => { test('Check stats.json generated by build.analyze', t => { const stats = require(resolve(__dirname, 'fixtures/with-config/.nuxt/dist/stats.json')) - t.is(stats.assets.length, 28) + t.is(stats.assets.length, 27) }) test('Check /test/test.txt with custom serve-static options', async t => {