Тест представляет собой приложение Angular 2 с Jasmine.
У меня есть эта функция, которая начинает синхронизацию с remote DB
(только в одну сторону от Couchbase до PouchDB только). Существуют службы, которые в основном подписываются на наблюдаемую информацию, которая генерируется в событии репликации. Теперь меня просят проверить, правильно ли отправлено состояние синхронизации, и развертывание заблокировано из-за низкого покрытия тестовым файлом службы.
Поэтому я вызываю startSync
с локальной базой данных pouchdb
и удаленной couchdb
объект. Как я могу проверить, что каждый слушатель события генерирует правильный результат? Я пытался go с помощью кода дубликата. js, но я и понятия не имею об этом. Любой намек, пожалуйста?
По сути, я хочу проверить, что излученное состояние является "ложным", когда я высмеиваю / генерирую событие "ошибка".
@Injectable()
export class SyncingService {
private subscription: any;
public syncingState: any = new BehaviorSubject<boolean>(false);
private emitResult(state: boolean) {
this.syncingState.next(state);
}
public startSync(localPouch: any, remoteDB: any, config: any) {
let vm: any = this;
this.subscription = localPouch.replicate
.from(remoteDB, { live: true, retry: true })
.on("paused", err => {
vm.emitResult(false);
})
.on("active", info => {
vm.emitResult(false);
})
.on("change", change => {
vm.emitResult(true);
})
.on("error", error => {
vm.emitResult(false);
});
}
}