ParseError: dois pontos é esperado (svelte com escs estilo) svelte testes de unidade

0

Pergunta

Eu estou tentando escrever um teste para o componente que está a utilizar ESCS como padrão de estilo. Mas o teste de arremesso de erro que não é capaz de entender ESCS

myComponent.svelte

<div>Hello <span>world</span></div>
<style>
div {
 padding: 20px;
 span {
  font-weight: bold;
 }
}
</style>

Arquivo De Teste

// mycomponent.test.js
import { render } from '@testing-library/svelte';
import MyComponent from './MyComponent.svelte';
...
const { component } = render(MyComponent, {});
...

Brincadeira De Configuração

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.
};

Eu estou ajustando o estilo padrão para SCSS no svelte config

svelte.config.js

const preprocess = require('svelte-preprocess');

module.exports = {
  preprocess: preprocess({ defaults: { style: 'scss' } }),
};

Erro De Pilha

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)

Para reproduzir o clone e executar este acordo de recompra https://github.com/rparsh/svelte-testing-scss

svelte
2021-11-24 05:25:02
1

Melhor resposta

2

Adicionar lang="scss" para o <style> tag:

<style lang="scss">
</style>

Em geral, ele não é mais recomendado o uso de idiomas padrão devido a questões como esta. Você não pode ter certeza de que todas as ferramentas no ecossistema suporta a leitura dos padrões. É por isso também que esta definição foi removido do google docs e svelte-preprocess agora imprime um aviso de que você não deve usá-lo.

2021-11-24 13:09:27

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................