const stripIndent = require('common-tags/lib/stripIndent'); const docsifyInit = require('../helpers/docsify-init'); const vueURLs = [ `${NODE_MODULES_URL}/vue2/dist/vue.js`, `${NODE_MODULES_URL}/vue3/dist/vue.global.js`, ]; describe('Vue.js Compatibility', function() { function getSharedConfig() { const config = { config: { vueGlobalOptions: { data: function() { return { counter: 0, msg: 'vueglobaloptions', }; }, }, vueOptions: { '#vueoptions': { data: function() { return { counter: 0, msg: 'vueoptions', }; }, }, }, }, markdown: { homepage: stripIndent` # {{ i }}

---

{{ counter }}

---

{{ counter }}

---

{{ counter }}
`, }, }; return config; } // Tests // --------------------------------------------------------------------------- describe('Ignores Vue', function() { test(`content when Vue is not present`, async () => { const docsifyInitConfig = getSharedConfig(); await docsifyInit(docsifyInitConfig); await page.evaluate(() => { return 'Vue' in window === false; }); await expect(page).toEqualText('h1', '{{ i }}'); await expect(page).toEqualText('#vueglobaloptions p', '---'); await expect(page).toEqualText('#vueoptions p', '---'); await expect(page).toEqualText('#vuescript p', '---'); }); test(`content when vueOptions and vueGlobalOptions are undefined`, async () => { const docsifyInitConfig = getSharedConfig(); docsifyInitConfig.config.vueGlobalOptions = undefined; docsifyInitConfig.config.vueOptions = undefined; docsifyInitConfig.scriptURLs = vueURLs[0]; await docsifyInit(docsifyInitConfig); await expect(page).toEqualText('h1', '{{ i }}'); await expect(page).toEqualText('#vueglobaloptions p', '---'); await expect(page).toEqualText('#vueoptions p', '---'); await expect(page).toEqualText('#vuescript p', 'vuescript'); }); test(`content when vueGlobalOptions data is undefined`, async () => { const docsifyInitConfig = getSharedConfig(); docsifyInitConfig.config.vueGlobalOptions.data = undefined; docsifyInitConfig.scriptURLs = vueURLs[0]; await docsifyInit(docsifyInitConfig); await expect(page).toEqualText('h1', '{{ i }}'); await expect(page).toEqualText('#vueoptions p', 'vueoptions'); await expect(page).toEqualText('#vueglobaloptions p', '---'); await expect(page).toEqualText('#vuescript p', 'vuescript'); }); test(`content when vueOptions data is undefined`, async () => { const docsifyInitConfig = getSharedConfig(); docsifyInitConfig.config.vueOptions['#vueoptions'].data = undefined; docsifyInitConfig.scriptURLs = vueURLs[0]; await docsifyInit(docsifyInitConfig); await expect(page).toEqualText('h1', '12345'); await expect(page).toEqualText('#vueoptions p', 'vueglobaloptions'); await expect(page).toEqualText('#vueglobaloptions p', 'vueglobaloptions'); await expect(page).toEqualText('#vuescript p', 'vuescript'); }); test(`