首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何触发Chokidar事件编程

如何触发Chokidar事件编程
EN

Stack Overflow用户
提问于 2016-08-21 21:51:51
回答 1查看 1.1K关注 0票数 0

我有一个类,它使用Chokidar,现在需要用茉莉来测试它。这就是chokidar加入的方法:

代码语言:javascript
复制
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));
    })
}

我想在我的测试中做这样的事情:

代码语言:javascript
复制
    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);
        });
    });

问题是我不知道如何模仿Chokidar事件。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 17:48:19

观察者实例继承自EventEmitter,因此您可以在它上调用.emit() (虽然我不确定如何/如果使用TypeScript):

代码语言:javascript
复制
pathWatch.watcher.emit('add', PATH, STATS);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39069169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档