当我有一个插件嵌入在另一个插件中时,会出现测试问题。
作者: carloshenriquecarniatto创建于 2025年1月3日更新于 2025年1月3日
Here’s the revised bug report in English, incorporating the fact that the suggested Jest configuration did not resolve the issue:
Bug Report
Repro link:
Expected Behavior
When creating a custom plugin that depends on another custom plugin, the test suite should run without throwing parsing or configuration errors.
Current Behavior
// Test Code
import { HeaderContext } from './../../src/contexts/ig-header-context';
import { BindingSignaler } from 'aurelia-templating-resources';
import { NavigationInstruction } from 'aurelia-router';
import {ComponentTester, StageComponent} from 'aurelia-testing';
import {bootstrap} from 'aurelia-bootstrapper';
import { Container } from 'aurelia-framework';
const navigationInstructionMock: any = {
params: {},
queryParams: {},
config: {
name: 'testRoute'
}
};
describe('HeaderContext', () => {
let signaler: BindingSignaler;
let container: Container;
let component: ComponentTester;
let headerContext: HeaderContext;
beforeEach(() => {
signaler = new BindingSignaler();
container = new Container();
headerContext = new HeaderContext(signaler);
container.registerInstance(HeaderContext, HeaderContext);
component = StageComponent
.withResources();
component.bootstrap(aurelia => {
aurelia.use.standardConfiguration();
aurelia.container = container;
return aurelia.use;
});
});
it('should resolve and use all dependencies correctly', done => {
component.create(bootstrap).then(() => {
headerContext.setInstruction(navigationInstructionMock);
headerContext.setPageTitle()
expect(headerContext.setInstruction).toHaveBeenCalled();
done();
}).catch(done.fail);
});
it('should initialize with default values', () => {
component.create(bootstrap).then(() => {
expect(headerContext.id).toBe("");
expect(headerContext.grupo).toBe("");
expect(headerContext.sujeto).toBe("");
expect(headerContext.propiedades).toEqual({});
expect(headerContext.title).toBe("");
expect(headerContext.instruction).toBeNull();
expect(headerContext.affix).toBe(false);
expect(headerContext.closed).toBe(true);
});
});
it('should set instruction and update title', () => {
const instruction: NavigationInstruction = {
config: { navModel: { title: 'Test Title' } }
} as NavigationInstruction;
headerContext.setInstruction(instruction);
expect(headerContext.instruction).toBe(instruction);
expect(headerContext.title).toBe('Test Title');
});
it('should reset properties and signal changes', () => {
jest.spyOn(signaler, 'signal');
headerContext.grupo = "test";
headerContext.sujeto = "test";
headerContext.propiedades = { key: "value" };
headerContext.reset();
…内容来源: aurelia/framework