From ffaf4edf0863a88160266f43a3ec86ad8d665bf7 Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Sun, 23 Aug 2020 11:49:08 -0700 Subject: [PATCH] types: Updating hooks label type to provide hint to built-in values --- .../@ember/test-helpers/-internal/helper-hooks.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addon-test-support/@ember/test-helpers/-internal/helper-hooks.ts b/addon-test-support/@ember/test-helpers/-internal/helper-hooks.ts index 2be12378d..2670491c0 100644 --- a/addon-test-support/@ember/test-helpers/-internal/helper-hooks.ts +++ b/addon-test-support/@ember/test-helpers/-internal/helper-hooks.ts @@ -1,4 +1,5 @@ type Hook = (...args: any[]) => void | Promise; +type HookLabel = 'start' | 'end' | string; type HookUnregister = { unregister: () => void; }; @@ -26,7 +27,7 @@ function getHelperKey(helperName: string, label: string) { * @returns {HookUnregister} An object containing an unregister function that will unregister * the specific hook registered to the helper. */ -export function registerHook(helperName: string, label: string, hook: Hook): HookUnregister { +export function registerHook(helperName: string, label: HookLabel, hook: Hook): HookUnregister { let helperKey = getHelperKey(helperName, label); let hooksForHelper = registeredHooks.get(helperKey); @@ -54,7 +55,7 @@ export function registerHook(helperName: string, label: string, hook: Hook): Hoo * @param {any[]} args Any arguments originally passed to the test helper. * @returns {Promise} A promise representing the serial invocation of the hooks. */ -export function runHooks(helperName: string, label: string, ...args: any[]): Promise { +export function runHooks(helperName: string, label: HookLabel, ...args: any[]): Promise { let hooks = registeredHooks.get(getHelperKey(helperName, label)) || new Set(); let promises = [...hooks].map(hook => hook(...args));