summaryrefslogtreecommitdiff
path: root/packages/astro/test/astro-scripts.test.js
diff options
context:
space:
mode:
authorGravatar matthewp <matthewp@users.noreply.github.com> 2022-07-18 15:35:14 +0000
committerGravatar fredkbot <fred+astrobot@astro.build> 2022-07-18 15:35:14 +0000
commitb282cdb21f3bdfabb237fd479df701f4b87b7db3 (patch)
tree7bf3131ec9d620c9444f5b2054144413f6555654 /packages/astro/test/astro-scripts.test.js
parent3acb9ec264de6ca6eecf49313c0f4d02c3908afa (diff)
downloadastro-b282cdb21f3bdfabb237fd479df701f4b87b7db3.tar.gz
astro-b282cdb21f3bdfabb237fd479df701f4b87b7db3.tar.zst
astro-b282cdb21f3bdfabb237fd479df701f4b87b7db3.zip
[ci] format
Diffstat (limited to '')
-rw-r--r--packages/astro/test/astro-scripts.test.js54
1 files changed, 28 insertions, 26 deletions
diff --git a/packages/astro/test/astro-scripts.test.js b/packages/astro/test/astro-scripts.test.js
index 8bc448150..f182dee20 100644
--- a/packages/astro/test/astro-scripts.test.js
+++ b/packages/astro/test/astro-scripts.test.js
@@ -19,99 +19,99 @@ describe('Scripts (hoisted and not)', () => {
before(async () => {
await fixture.build();
});
-
+
it('Moves external scripts up', async () => {
const html = await fixture.readFile('/external/index.html');
const $ = cheerio.load(html);
-
+
expect($('head script[type="module"]:not([src="/regular_script.js"])')).to.have.lengthOf(1);
expect($('body script')).to.have.lengthOf(0);
});
-
+
it('Moves inline scripts up', async () => {
const html = await fixture.readFile('/inline/index.html');
const $ = cheerio.load(html);
-
+
expect($('head script[type="module"]')).to.have.lengthOf(1);
expect($('body script')).to.have.lengthOf(0);
});
-
+
it('Inline page builds the scripts to a single bundle', async () => {
// Inline page
let inline = await fixture.readFile('/inline/index.html');
let $ = cheerio.load(inline);
let $el = $('script');
-
+
// test 1: Just one entry module
expect($el).to.have.lengthOf(1);
-
+
// test 2: attr removed
expect($el.attr('data-astro')).to.equal(undefined);
-
+
expect($el.attr('src')).to.equal(undefined);
const inlineEntryJS = $el.text();
-
+
// test 3: the JS exists
expect(inlineEntryJS).to.be.ok;
-
+
// test 4: Inline imported JS is included
expect(inlineEntryJS).to.contain(
'I AM IMPORTED INLINE',
'The inline imported JS is included in the bundle'
);
});
-
+
it("Inline scripts that are shared by multiple pages create chunks, and aren't inlined into the HTML", async () => {
let html = await fixture.readFile('/inline-shared-one/index.html');
let $ = cheerio.load(html);
-
+
expect($('script')).to.have.lengthOf(1);
expect($('script').attr('src')).to.not.equal(undefined);
});
-
+
it('External page builds the hoisted scripts to a single bundle', async () => {
let external = await fixture.readFile('/external/index.html');
let $ = cheerio.load(external);
-
+
// test 1: there are two scripts
expect($('script')).to.have.lengthOf(2);
-
+
let el = $('script').get(1);
expect($(el).attr('src')).to.equal(undefined, 'This should have been inlined');
let externalEntryJS = $(el).text();
-
+
// test 2: the JS exists
expect(externalEntryJS).to.be.ok;
});
-
+
it('External page using non-hoist scripts that are modules are built standalone', async () => {
let external = await fixture.readFile('/external-no-hoist/index.html');
let $ = cheerio.load(external);
-
+
// test 1: there is 1 scripts
expect($('script')).to.have.lengthOf(1);
-
+
// test 2: inside assets
let entryURL = $('script').attr('src');
expect(entryURL.includes('assets/')).to.equal(true);
});
-
+
it('External page using non-hoist scripts that are not modules are built standalone', async () => {
let external = await fixture.readFile('/external-no-hoist-classic/index.html');
let $ = cheerio.load(external);
-
+
// test 1: there is 1 scripts
expect($('script')).to.have.lengthOf(1);
-
+
// test 2: inside assets
let entryURL = $('script').attr('src');
expect(entryURL.includes('assets/')).to.equal(true);
});
-
+
it('Scripts added via Astro.glob are hoisted', async () => {
let glob = await fixture.readFile('/glob/index.html');
let $ = cheerio.load(glob);
-
+
expect($('script[type="module"]').length).to.be.greaterThan(0);
});
});
@@ -135,10 +135,12 @@ describe('Scripts (hoisted and not)', () => {
let found = 0;
let moduleScripts = $('[type=module]');
moduleScripts.each((i, el) => {
- if($(el).attr('src').includes('Glob/GlobComponent.astro?astro&type=script&index=0&lang.ts')) {
+ if (
+ $(el).attr('src').includes('Glob/GlobComponent.astro?astro&type=script&index=0&lang.ts')
+ ) {
found++;
}
- })
+ });
expect(found).to.equal(1);
});
});