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";
Другие вопросы по тегам