Я пытаюсь написать тесты для пакета 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 пакете? Или у кого-нибудь есть предложения, что попробовать?