Откуда этот код, который вы мне показывали выше?
В приемочном тесте Mirage автоматически запускает / останавливает сервер из инициализатора, который он связывает в своем аддоне под addon/instance-initializers/ember-cli-mirage-autostart.js
:
let server = startMirage(appInstance);
testContext.server = server;
// To ensure that the server is shut down when the application is
// destroyed, register and create a singleton object that shuts the server
// down in its willDestroy() hook.
appInstance.register('mirage:shutdown', MirageShutdown);
который звонит:
willDestroy() {
let testContext = this.get('testContext');
testContext.server.shutdown();
delete testContext.server;
}
Ember запускает и останавливает приложение между каждым тестом, что означает, что каждый приемочный тест автоматически начинается с пустой базы данных.
Если вы находитесь вне контекста приемочного теста, вам нужно начать останавливаться самостоятельно.
// tests/integration/components/your-test.js
import { startMirage } from 'yourapp/initializers/ember-cli-mirage';
moduleForComponent('your-component', 'Integration | Component | your component', {
integration: true,
beforeEach() {
this.server = startMirage();
},
afterEach() {
this.server.shutdown();
}
});
Вызов отключения после каждого теста жизненно важен для очистки данных