Skip to content

Commit 8218008

Browse files
committed
Emperiment with svelte-inline-components
1 parent c60855c commit 8218008

File tree

7 files changed

+53
-57
lines changed

7 files changed

+53
-57
lines changed

package-lock.json

Lines changed: 11 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"tslib": "^2.3.1",
2929
"typescript": "^4.5.4",
3030
"vitest": "^0.0.138",
31-
"vite-plugin-svelte-inline-compile": "^0.0.1"
31+
"vite-plugin-svelte-inline-components": "file://Users/miguelcamba/code/own/vite-plugin-svelte-inline-components"
3232
},
3333
"type": "module",
3434
"dependencies": {

src/lib/DefinitionEntry.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
<div
55
data-testid="definition-entry"
66
class="{background === 'gray' ? 'bg-gray-50' : 'bg-white'} px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
7-
<dt class="text-sm font-medium text-gray-500">
7+
<dt class="text-sm font-medium text-gray-500" data-testid="dt">
88
<slot name="dt"/>
99
</dt>
10-
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
10+
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2" data-testid="dd">
1111
<slot name="dd"></slot>
1212
</dd>
1313
</div>

tests/DefinitionEntrt.test.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

tests/DefinitionEntry.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { cleanup, render } from '@testing-library/svelte'
2+
import { svelte } from 'vite-plugin-svelte-inline-components';
3+
4+
describe('DefinitionEntry.svelte', () => {
5+
// TODO: @testing-library/svelte claims to add this automatically but it doesn't work without explicit afterEach
6+
afterEach(() => cleanup())
7+
8+
it('renders a link with the given href', async () => {
9+
const { getByTestId } = render(await svelte`
10+
<script>import DefinitionEntry from '$lib/DefinitionEntry.svelte';</script>
11+
<DefinitionEntry background="gray">
12+
<svelte:fragment slot="dt">I'm the description term</svelte:fragment>
13+
<svelte:fragment slot="dd">I'm the description definition</svelte:fragment>
14+
</DefinitionEntry>
15+
`);
16+
expect(getByTestId('definition-entry')).to.have.class('bg-gray-50');
17+
expect(getByTestId('dt')).to.have.text("I'm the description term");
18+
expect(getByTestId('dd')).to.have.text("I'm the description definition");
19+
});
20+
});

tests/NavLink.test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { cleanup, render } from '@testing-library/svelte'
2+
import { svelte } from 'vite-plugin-svelte-inline-components';
3+
4+
describe('NavLink.svelte', () => {
5+
// TODO: @testing-library/svelte claims to add this automatically but it doesn't work without explicit afterEach
6+
afterEach(() => cleanup())
7+
8+
it('renders a link with the given href', async () => {
9+
const { getByTestId } = render(await svelte`
10+
<script>import NavLink from '$lib/NavLink.svelte';</script>
11+
<NavLink href="/foo/bar">Link text</NavLink>
12+
`);
13+
expect(getByTestId('definition-entry')).to.have.class('bg-gray-50');
14+
expect(getByTestId('dt')).to.have.text("I'm the description term");
15+
expect(getByTestId('dd')).to.have.text("I'm the description definition");
16+
});
17+
});

vitest.config.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@ import { defineConfig } from 'vite'
22
import { svelte } from '@sveltejs/vite-plugin-svelte'
33
import { sveltekitViteConfig } from './svelte.config.js'
44
import path from 'path';
5-
import svelteInlineCompile from 'vite-plugin-svelte-inline-compile';
5+
import svelteInlineComponents from 'vite-plugin-svelte-inline-components';
66

77
export default defineConfig({
88
...sveltekitViteConfig,
99
plugins: [
1010
svelte({
1111
hot: !process.env.VITEST,
12-
compilerOptions: { format: "cjs" }
1312
}),
14-
svelteInlineCompile(),
13+
svelteInlineComponents(),
1514
],
1615
test: {
1716
global: true,

0 commit comments

Comments
 (0)