У меня есть класс, в котором используется Chokidar, и теперь нужно протестировать его с помощью жасмина. Это метод, где сторож приходит на борту:Как запускать программу Chokidar programmaticaly
public watch(path: string) {
var watchOptions: chokidar.WatchOptions = <chokidar.WatchOptions> {
persistent: true
};
this.watcher = chokidar.watch(path, watchOptions);
this.watcher.on("add", (fileName: string, stats: fs.Stats) => {
this.sendNotifyAction(new NotifyAction(PathEvent.Add, fileName));
}).on("change", (fileName: string, stats: fs.Stats) => {
this.sendNotifyAction(new NotifyAction(PathEvent.Change, fileName));
})
}
Я хочу, чтобы в моем тестовом что-то вроде:
it("Should send notification, when internal directory is added",() => {
runs(() => {
flag = false;
pathWatch.watch(dirPath);
//TRIGGER chokidar on.add event??
//spyOn(pathWatch.watcher, "on").and.callFake((params) => {
// flag = true;
//});
});
waitsFor((): boolean => {
return flag;
}, "failure", 5000);
runs(() => {
var expectedNotifyAction = new NotifyAction(PathEvent.Add, notificationInternalDirPath);
expect(subscriber.processNotifyAction).toHaveBeenCalledWith(expectedNotifyAction);
});
});
Проблема заключается в том, что я не знаю, как эмулировать события сторож. Буду признателен за любую оказанную помощь.
почему бы не просто запись в файл и добавить файл с API-интерфейсом node.js, он должен вызвать chokidar – qballer
, вот как я это делаю сейчас, но это немного грязно, и мне интересно, как эмулировать события chokidar –
из тестов chokidar https://github.com/paulmillr /chokidar/blob/master/test.js#L162 – qballer