Реакция JEST Snapshot - изменение структуры каталогов - PullRequest
1 голос
/ 24 апреля 2020

Моя текущая структура выглядит следующим образом

- Button
  - Button.tsx
  - Button.test.tsx

Когда я добавляю тест моментального снимка, по умолчанию он создает каталог __snapshot__, например

- Button
  - __snapshots__
    - Button.test.tsx.snap
  - Button.tsx
  - Button.test.tsx

Мне бы хотелось, чтобы файл снимка был расположены рядом с другими файлами кнопок, например

- Button        
  - Button.tsx
  - Button.test.tsx
  - Button.test.tsx.snap

Я читал о новой конфигурации jest snapshotResolver , но не могу заставить ее работать с моим приложением реагирования (которое было создано с помощью CRA).

Если я попытаюсь добавить это в пакет. json файл, ответ говорит мне, что он поддерживает только несколько опций jest, snapshotResolver не является одним из них.

I попробовал следующие примеры в сети, но я не могу заставить его работать

Я создал jest.config. js в root моего проекта, который содержит

module.exports = {
    snapshotResolver: './snapshotResolver.js',
};

И также создал snapshotResolver. js также в проекте root (это взято из проблемы github, я считаю)

// https://jestjs.io/docs/en/configuration.html#snapshotresolver-string
module.exports = {
    testPathForConsistencyCheck: 'some/example.test.js',

    resolveSnapshotPath: (testPath, snapshotExtension) =>
        testPath.replace(/\.test\.([tj]sx?)/, `${snapshotExtension}.$1`),
    resolveTestPath: (snapshotFilePath, snapshotExtension) =>
        snapshotFilePath.replace(snapshotExtension, '.test'),
};

2 вещи. Во-первых, правильно ли я настроил jest config и resolver? Во-вторых, поскольку я использую CRA, он игнорирует jest.config и использует все значения по умолчанию?

Edit

Я нашел этот PR, который был открыт с Август 2019 года, https://github.com/facebook/create-react-app/issues/6532

1 Ответ

0 голосов
/ 25 апреля 2020

Как вы уже обнаружили, create-react-app не поддерживает параметр конфигурации snapshotResolver.

Таким образом, если вы не извлечете свой проект, вы не сможете настроить, где хранятся снимки.

...