Skip to content

Commit 4c1a16f

Browse files
committed
Save progress.
1 parent c73bb45 commit 4c1a16f

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

package-lock.json

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

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch"
1212
},
1313
"devDependencies": {
14+
"@babel/core": "^7.16.7",
1415
"@sveltejs/adapter-netlify": "next",
1516
"@sveltejs/kit": "next",
1617
"@testing-library/svelte": "^3.0.3",
@@ -27,7 +28,8 @@
2728
"tailwindcss": "^3.0.11",
2829
"tslib": "^2.3.1",
2930
"typescript": "^4.5.4",
30-
"vitest": "^0.0.138"
31+
"vitest": "^0.0.138",
32+
"babel-plugin-svelte-inline-compile": "^0.0.1"
3133
},
3234
"type": "module",
3335
"dependencies": {

svelte-inline-compile.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
const fileRegex = /\.test\.js$/
2+
import { transformSync } from '@babel/core';
3+
import svelteInlineCompileBabelPlugin from 'babel-plugin-svelte-inline-compile';
4+
const virtualModuleId = 'svelte-testing'
5+
const resolvedVirtualModuleId = '\0' + virtualModuleId
6+
7+
8+
export default function myPlugin() {
9+
return {
10+
name: 'svelte-inline-compile',
11+
resolveId(id) {
12+
if (id === virtualModuleId) {
13+
return resolvedVirtualModuleId
14+
}
15+
},
16+
load(id) {
17+
if (id === resolvedVirtualModuleId) {
18+
return '';
19+
// return `export const msg = "from virtual module"`
20+
}
21+
},
22+
transform(src, id) {
23+
if (fileRegex.test(id)) {
24+
let result = transformSync(src, {
25+
plugins: [
26+
svelteInlineCompileBabelPlugin
27+
],
28+
ast: true,
29+
sourceMaps: true,
30+
sourceFileName: id
31+
});
32+
console.log(result.code);
33+
return result;
34+
}
35+
},
36+
}
37+
}

tests/DefinitionEntrt.test.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { cleanup, render } from '@testing-library/svelte'
22
import DefinitionEntry from '$lib/DefinitionEntry.svelte';
33
import chai from 'chai';
44
import chaiDom from 'chai-dom';
5+
// import svelte from 'svelte-testing';
56

67
chai.use(chaiDom);
78

@@ -10,7 +11,11 @@ describe('DefinitionEntry.svelte', () => {
1011
afterEach(() => cleanup())
1112

1213
it('renders a link with the given href', () => {
13-
const { getByTestId } = render(DefinitionEntry, { background: 'gray' })
14+
// const { getByTestId } = render(DefinitionEntry, { background: 'gray' })
15+
// debugger;
16+
const { getByTestId } = render(svelte`
17+
<DefinitionEntry background="gray"></DefinitionEntry>
18+
`)
1419
expect(getByTestId('definition-entry')).to.have.class('bg-gray-50');
1520
});
1621
});

vitest.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ 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 './svelte-inline-compile.js';
56

67
export default defineConfig({
78
...sveltekitViteConfig,
89
plugins: [
910
svelte({ hot: !process.env.VITEST }),
11+
svelteInlineCompile(),
1012
],
1113
test: {
1214
global: true,

0 commit comments

Comments
 (0)