Add more tsconfig alias tests (#6812)

This commit is contained in:
Bjorn Lu 2023-04-10 22:40:40 +08:00 committed by GitHub
parent 99479e6b95
commit a91e0156ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 66 additions and 5 deletions

View file

@ -34,5 +34,29 @@ describe('Aliases with tsconfig.json', () => {
const scripts = $('script').toArray(); const scripts = $('script').toArray();
expect(scripts.length).to.be.greaterThan(0); expect(scripts.length).to.be.greaterThan(0);
}); });
it('can load via baseUrl', async () => {
const html = await fixture.fetch('/').then((res) => res.text());
const $ = cheerio.load(html);
expect($('#foo').text()).to.equal('foo');
expect($('#constants-foo').text()).to.equal('foo');
});
it('can load namespace packages with @* paths', async () => {
const html = await fixture.fetch('/').then((res) => res.text());
const $ = cheerio.load(html);
expect($('#namespace').text()).to.equal('namespace');
});
// TODO: fix this https://github.com/withastro/astro/issues/6551
it.skip('works in css @import', async () => {
const html = await fixture.fetch('/').then((res) => res.text());
console.log(html);
// imported css should be bundled
expect(html).to.include('#style-red');
expect(html).to.include('#style-blue');
});
}); });
}); });

View file

@ -0,0 +1 @@
export const namespace = 'namespace';

View file

@ -0,0 +1,7 @@
{
"name": "@test/namespace-package",
"version": "0.0.0",
"private": true,
"type": "module",
"exports": "./index.js"
}

View file

@ -4,6 +4,7 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"@astrojs/svelte": "workspace:*", "@astrojs/svelte": "workspace:*",
"@test/namespace-package": "workspace:*",
"astro": "workspace:*", "astro": "workspace:*",
"svelte": "^3.48.0" "svelte": "^3.48.0"
} }

View file

@ -0,0 +1 @@
<p id="foo">foo</p>

View file

@ -0,0 +1,2 @@
<p id="style-blue">i am blue</p>
<p id="style-red">i am red</p>

View file

@ -1,5 +1,11 @@
--- ---
import Client from '@components/Client.svelte' import Client from '@components/Client.svelte'
import Foo from 'src/components/Foo.astro';
import StyleComp from 'src/components/Style.astro';
import { namespace } from '@test/namespace-package'
import { foo } from 'src/utils/constants';
// TODO: support alias in @import https://github.com/withastro/astro/issues/6551
// import '@styles/main.css';
--- ---
<html lang="en"> <html lang="en">
<head> <head>
@ -10,6 +16,10 @@ import Client from '@components/Client.svelte'
<body> <body>
<main> <main>
<Client client:load /> <Client client:load />
<Foo />
<StyleComp />
<p id="namespace">{namespace}</p>
<p id="constants-foo">{foo}</p>
</main> </main>
</body> </body>
</html> </html>

View file

@ -0,0 +1,3 @@
#style-red {
color: red;
}

View file

@ -0,0 +1,5 @@
@import "@styles/extra.css";
#style-blue {
color: blue;
}

View file

@ -0,0 +1 @@
export const foo = 'foo'

View file

@ -5,12 +5,13 @@
"@components/*": [ "@components/*": [
"src/components/*" "src/components/*"
], ],
"@layouts/*": [ "@styles/*": [
"src/layouts/*" "src/styles/*"
],
"@assets/*": [
"src/assets/*"
], ],
// this can really trip up namespaced packages
"@*": [
"src/*"
]
} }
} }
} }

5
pnpm-lock.yaml generated
View file

@ -1270,13 +1270,18 @@ importers:
packages/astro/test/fixtures/alias-tsconfig: packages/astro/test/fixtures/alias-tsconfig:
specifiers: specifiers:
'@astrojs/svelte': workspace:* '@astrojs/svelte': workspace:*
'@test/namespace-package': workspace:*
astro: workspace:* astro: workspace:*
svelte: ^3.48.0 svelte: ^3.48.0
dependencies: dependencies:
'@astrojs/svelte': link:../../../../integrations/svelte '@astrojs/svelte': link:../../../../integrations/svelte
'@test/namespace-package': link:deps/namespace-package
astro: link:../../.. astro: link:../../..
svelte: 3.55.1 svelte: 3.55.1
packages/astro/test/fixtures/alias-tsconfig/deps/namespace-package:
specifiers: {}
packages/astro/test/fixtures/api-routes: packages/astro/test/fixtures/api-routes:
specifiers: specifiers:
astro: workspace:* astro: workspace:*