我正在尝试为使用SCSS作为默认样式的组件编写一个测试。但测试抛出了无法理解SCSS的错误
myComponent.svelte
<div>Hello <span>world</span></div>
<style>
div {
padding: 20px;
span {
font-weight: bold;
}
}
</style>
测试文件
// mycomponent.test.js
import { render } from '@testing-library/svelte';
import MyComponent from './MyComponent.svelte';
...
const { component } = render(MyComponent, {});
...
Jest配置
module.exports = {
transform: {
'^.+\\.js$': 'babel-jest',
'^.+\\.svelte$': ['svelte-jester', { preprocess: true, debug: true }],
},
moduleFileExtensions: ['js', 'svelte'],
roots: ['<rootDir>/app/modules'],
modulePaths: ['<rootDir>/app/modules'],
moduleDirectories: ['node_modules', 'app/modules'],
setupFilesAfterEnv: [
'<rootDir>/app/modules/tests/setupTest.js',
'@testing-library/jest-dom/extend-expect',
],
clearMocks: true, // Automatically clear mock calls and instances before every test.
};
我正在将默认样式设置为
SCSS
在苗条的配置中
svelt.config.js
const preprocess = require('svelte-preprocess');
module.exports = {
preprocess: preprocess({ defaults: { style: 'scss' } }),
};
错误堆栈
Colon is expected
4: padding: 20px;
5:
6: span {
^
7: font-weight: bold;
8: }
ParseError: Colon is expected
at error (node_modules/svelte/src/compiler/utils/error.ts:25:16)
at Parser$1.error (node_modules/svelte/src/compiler/parse/index.ts:101:3)
at Object.read_style [as read] (node_modules/svelte/src/compiler/parse/read/style.ts:31:11)
at tag (node_modules/svelte/src/compiler/parse/state/tag.ts:189:27)
at new Parser$1 (node_modules/svelte/src/compiler/parse/index.ts:53:12)
at parse (node_modules/svelte/src/compiler/parse/index.ts:218:17)
at Object.compile (node_modules/svelte/src/compiler/compile/index.ts:93:14)
at compiler (node_modules/svelte-jester/dist/transformer.cjs:135:32)
at Object.processSync [as process] (node_modules/svelte-jester/dist/transformer.cjs:111:12)
at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:464:35)
复制克隆并运行此回购
https://github.com/rparsh/svelte-testing-scss