1- jest . setTimeout ( 15000 )
1+ jest . setTimeout ( 30000 )
22
33const path = require ( 'path' )
44const portfinder = require ( 'portfinder' )
@@ -8,6 +8,7 @@ const create = require('@vue/cli-test-utils/createTestProject')
88const launchPuppeteer = require ( '@vue/cli-test-utils/launchPuppeteer' )
99
1010let server , browser , page
11+
1112test ( 'build as wc' , async ( ) => {
1213 const project = await create ( 'build-wc' , defaultPreset )
1314
@@ -53,6 +54,41 @@ test('build as wc', async () => {
5354 expect ( h3Text ) . toMatch ( 'Installed CLI Plugins' )
5455} )
5556
57+ test ( 'build as single wc' , async ( ) => {
58+ const project = await create ( 'build-single-wc' , defaultPreset )
59+
60+ const { stdout } = await project . run ( `vue-cli-service build --target wc --name single-wc` )
61+ expect ( stdout ) . toMatch ( 'Build complete.' )
62+
63+ expect ( project . has ( 'dist/demo.html' ) ) . toBe ( true )
64+ expect ( project . has ( 'dist/single-wc.js' ) ) . toBe ( true )
65+ expect ( project . has ( 'dist/single-wc.min.js' ) ) . toBe ( true )
66+
67+ const port = await portfinder . getPortPromise ( )
68+ server = createServer ( { root : path . join ( project . dir , 'dist' ) } )
69+
70+ await new Promise ( ( resolve , reject ) => {
71+ server . listen ( port , err => {
72+ if ( err ) return reject ( err )
73+ resolve ( )
74+ } )
75+ } )
76+
77+ const launched = await launchPuppeteer ( `http://localhost:${ port } /demo.html` )
78+ browser = launched . browser
79+ page = launched . page
80+
81+ const styleCount = await page . evaluate ( ( ) => {
82+ return document . querySelector ( 'single-wc' ) . shadowRoot . querySelectorAll ( 'style' ) . length
83+ } )
84+ expect ( styleCount ) . toBe ( 2 ) // should contain styles from both app and child
85+
86+ const h1Text = await page . evaluate ( ( ) => {
87+ return document . querySelector ( 'single-wc' ) . shadowRoot . querySelector ( 'h1' ) . textContent
88+ } )
89+ expect ( h1Text ) . toMatch ( 'Welcome to Your Vue.js App' )
90+ } )
91+
5692afterAll ( async ( ) => {
5793 await browser . close ( )
5894 server . close ( )
0 commit comments