Svelte - невозможно получить данные из файла JSON во время модульного тестирования шутки.
Во время модульного тестирования я получаю неопределенную ошибку при выполнении компонента svelte с файлом json.
Ресторан.svelte :
import data from '../Data/restaurants.json';
console.log(data);
let finalData = data.restaurants;
ресторан.spec.js:
import Restaurant from './../routes/Restaurant.svelte';
import { render, screen, fireEvent } from "@testing-library/svelte";
describe("Restaurants Home Page",()=>{
it("Tests for Header",()=>{
render(Restaurant);
const resheader = screen.getByText("Restaurants");
expect(resheader).toBeVisible();
})
})
Файл конфигурации Jest:
{
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.svelte$": "svelte-jester",
".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "jest-transform-stub"
},
"moduleFileExtensions": ["svelte", "js", "json"],
"transformIgnorePatterns": ["node_modules/(?!(svelte-spa-router|svelte-i18n)/)"],
"testEnvironment": "jsdom",
"setupFilesAfterEnv": ["@testing-library/jest-dom/extend-expect"],
"moduleDirectories": [
"node_modules",
"src"
],
"moduleNameMapper": {
"src/(.*)": "<rootDir>/src/Data"
}
}
Сообщение об ошибке:TypeError: невозможно прочитать свойства неопределенного (чтение «ресторанов»)
7 |
8 | console.log(data);
> 9 | let finalData = data.restaurants;
1 ответ
Я настоятельно рекомендую использовать vitest для тестирования приложений SvelteKit, так как они оба используют vite, что уменьшает количество настроек и несовместимостей.
Тем не менее, это также может работать в svelte-jester, используя
* as
синтаксис:
import * as data from "../data/restaurants.json";