I am trying to write unit tests for an Angular web application. Please note I am very, very new to web development.
One of the Services, ProcessorService uses pyodide to run python code.
I want to check if that python code manipulates a data set correctly, and outputs the resulting data set.
However, I am getting this error when running the unit test:
Unhandled promise rejection: Error: Failed to load 'http://localhost:9876/_karma_webpack_/webpack:/node_modules/pyodide/pyodide_py.tar': request failed.
This is my beforeEach() call
describe('ProcessorService', () => {
let errorHandler = new ErrorHandlerService();
let sample = new SampleDataService();
let http: HttpClient;
const graph = new GraphService(sample, http);
let process: ProcessorService;
beforeEach(async() => {
TestBed.configureTestingModule({
imports:[
HttpClientTestingModule,
],
providers: [
GraphService,
ErrorHandlerService,
SampleDataService,
ProcessorService,
loadPyodide,
],
});
});
This is the test I am trying to run:
it('Test if ... Selected process runs on dataset',async()=>{
let service = new ProcessorService(http, errorHandler, graph);
const PYODIDE_BASE_URL = 'https://cdn.jsdelivr.net/pyodide/v0.22.0/full/';
let testDataSet: Dataset = {
contactPoint: null,
displacementForceData : [],
displacementForceFilteredData: [],
indentationForceData: [],
elspectraData : [],
testData: [],
};
let testDataConverted: any = service.convertXAndYArrayToDatapointsArray(testData);
if (typeof (testDataConverted) == 'object' && testDataConverted.error)
{
fail('Data conversion failed.');
}
testDataSet.testData = testDataConverted;
let outDataConverted: any = service.convertXAndYArrayToDatapointsArray(outData);
service.addProcess(testProcess);
service.selectedTests = [testProcess];
console.log("wait for pyodide now....")
const pyodide = await loadPyodide()
service.runFrom(EProcType.TEST, [testDataSet]);
expect(service.testOutDatasets[0].testData).toEqual(outDataConverted);
});
I have tried importing pyodide in the .spec.ts
file itself, but I am unsure about what to do. There is no documentation I could find on my issue.
Thank you.
I expect to be able to run a unit test using Jasmine in a fucntion that uses pyodide, but I am unsure if it is even possible.