Карма не может найти файлы в системе js связка - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь написать тесты для пакета System JS 0.19, который мне дал другая команда. Мой код зависит от файлов, которые содержатся в этом комплекте. У меня есть доступ к их config.js, который показывает, какие файлы находятся в комплекте. Внутри файла config.js есть свойство пакета

System.config({
    "baseURL": "",
    "bundles": {
        "bundle-name.min.js": [
            "File.js",
            "path/to/file1.js",
            "path/to/file2.js",
        ]
    }
});

Я пишу тесты кармы, которые зависят от файлов в этом пакете. Проблема, с которой я сталкиваюсь, заключается в том, что карма не может найти файлы, которые находятся в этом комплекте.

Приложение. js

import { File1 } from 'path/to/file';

export class Klass extends File1 {
};

Приложение.test. js

import { Klass } from './App.js'
import Enzyme, { shallow } from "enzyme";                                                                                                                                                                                                                                       import Adapter from "enzyme-adapter-react-16";                                                                                                                                                                                                                                  import jasmineEnzyme from "jasmine-enzyme";                                                                                                                                                                                                                                     

Enzyme.configure({ adapter: new Adapter() });                                                                                                                                                                                                                                   

beforeEach(() => {                                                                                                                                                                                                                                                                  
  jasmineEnzyme();                                                                                                                                                                                                                                                                });                                                                                                                                                                                                                                                                             

describe("Klass", () => {                                                                                                                                                                                                                                                         
  it("should render Klass", () => {                                                                                                                                                                                                                                                 
    const { container } = shallow(<Klass />);                                                                                                                                                                                                                                       
    expect(container)                                                                                                                                                                                                                                                               
  });                                                                                                                                                                                                                                                                             });

karma.conf. js

/* SNIP */
    systemjs: {
      configFile: path.join(relativePath, 'config.js'),
      serveFiles: [
        path.join(relativePath, 'production-bundle.min.js'),
         "node_modules/enzyme/**/*",
         "node_modules/enzyme-adapter-react-16/**/*",
         "node_modules/jasmine-enzyme/**/*",
         "jspm_packages/npm/react@16.7.0.js",
         "jspm_packages/npm/react@16.7.0/**/*",
         "my/src/**/*.js",
      ],
      config: {
        useBundles: true,
        paths: {
          'systemjs': 'node_modules/systemjs/dist/system.js',
          'enzyme-adapter-react-16': 'node_modules/enzyme-adapter-react-16/build/index.js',
          'jasmine-enzyme': 'node_modules/jasmine-enzyme/lib/index.js',
          'react': 'node_modules/react/index.js',
          'enzyme': 'node_modules/enzyme/build/index.js',
        }
      },
      testFileSuffix: 'USpec.js'
    },

Я пытался использовать карма-систему js, karma-jspm и карму-тест-шим. js (Я сохраню пример кода других попыток, если кто-то не попросит об этом). Все пути в конечном итоге приводят к одной и той же проблеме: все мои тестовые библиотеки обслуживаются и могут быть загружены, но в тот момент, когда мой тест пытается загрузить файл, содержащийся в комплекте, я получаю 404. Я не могу понять, как скажите карме искать в комплекте файл, который запрашивается в моем коде.

04 02 2020 20:55:49.228:DEBUG [middleware:source-files]: Requesting /base/path/to/file1.js
04 02 2020 20:55:49.228:DEBUG [middleware:source-files]: Fetching /home/user/src/path/to/file1.js
04 02 2020 20:55:49.231:WARN [web-server]: 404: /base/path/to/file1.js

Я хочу, чтобы при выполнении запроса он находил файл в комплекте, а не на диске.

Существуют ли примеры, как получить тесты кармы, чтобы найти файлы, содержащиеся в системном js пакете? Или у кого-нибудь есть предложения, что попробовать?

...