Skip to content

Instantly share code, notes, and snippets.

@chrisza4
Last active December 26, 2019 03:04
Show Gist options
  • Select an option

  • Save chrisza4/f6c579be6f71163a2cc8715fd3cc7b40 to your computer and use it in GitHub Desktop.

Select an option

Save chrisza4/f6c579be6f71163a2cc8715fd3cc7b40 to your computer and use it in GitHub Desktop.
test('requirement', () => {
// ----------------------------
// Initialization, etc.
// ----------------------------
return new Promise((resolve, reject) => {
repo.once('data', () => {
try {
const savedFeature = repo.getToggle(feature.name);
expect(savedFeature.enabled === feature.enabled).toBeTruthy();
expect(savedFeature.strategies[0].name === feature.strategies[0].name).toBeTruthy();
const featureToggles = repo.getToggles();
expect(featureToggles[0].name).toEqual('feature');
const featureToggle = repo.getToggle('feature');
expect(featureToggle).toBeTruthy();
resolve()
} catch (err) {
reject(err)
}
})
})
})
// This can be in test-helper.ts
function testEventOnce(eventEmitter: EventEmitter, eventName: string, callback: () => void) {
return new Promise((resolve, reject) => {
eventEmitter.once(eventName, async () => {
try {
callback()
resolve()
} catch (err) {
reject(err)
}
})
})
}
// actual test
test('same thing', () => {
// Noted that this can be either await or return
return testEventOnce(repo, 'data', () => {
// Do things here
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment