Я пытаюсь отладить неудачные тесты в приложении Ember 3.0.У меня есть форма входа с использованием ember-simple-auth.Действие аутентификации выглядит следующим образом:
let { identification, password } = this.getProperties('identification', 'password');
this.get('session').authenticate('authenticator:devise', identification, password)
.catch((reason) => {
this.set('loginError', reason.errors || reason);
});
Мой тест просто заполняет форму и нажимает кнопку, чтобы вызвать это действие, а затем проверяет, что пользователь вошел в систему:
invalidateSession();
await visit('/');
fillIn('#identification', 'test@email.com');
fillIn('#password', 'secret');
await click('.login-btn');
let sesh = currentSession();
let isAuthed = get(sesh, 'isAuthenticated');
assert.equal(
isAuthed,
true,
'after a user submits good creds to login form, they are logged in'
);
Использованиебэкэнд Mirage, это работает каждый раз.Однако, используя Rails API, который возвращает тот же ответ, этот тест не проходит примерно половину времени.Кажется случайным, пройдет он или нет.
Я не уверен, где проблема здесь.Приложение Rails работает локально на порту 3000, поэтому это не проблема сети.Интересно, истекает ли время ожидания теста, потому что API требует больше времени, чем Mirage, хотя это кажется маловероятным, поскольку тесты выполняются менее чем за секунду.Кто-нибудь сталкивался с такой проблемой?
Спасибо