'use strict'; const test = require('ava'); const { EventEmitter } = require('events'); const eventStore = new EventEmitter(); const { addEventHook } = require('./event-hook'); const { FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, } = require('./event-type'); const o = {}; function testHook(feature, data) { o[feature] = data; } test.before(() => { addEventHook(testHook, eventStore); }); [FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED].forEach( feature => { test(`should invoke hook on ${feature}`, t => { const data = { dataKey: feature }; eventStore.emit(feature, data); t.true(o[feature] === data); }); }, );