Cucumber-js: v7 . рдореЗрдВ рдЕрдм рдХреЛрдИ рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЬрдире░ 2021  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cucumber/cucumber-js

V6 рдореЗрдВ, рдПрдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рдкрд╣рд▓реЗ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

Before({ tags: '<strong i="6">@ignore</strong>' }, async function () {
  return 'skipped';
});

рдпрд╣ рд╡рд╣реА рдХреЛрдб рдЕрдм рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ рд╕рд╛рде v7 рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

error TS2769: No overload matches this call.
  Overload 1 of 3, '(tags: string, code: TestCaseHookFunction): void', gave the following error.
    Argument of type '{ tags: string; }' is not assignable to parameter of type 'string'.
  Overload 2 of 3, '(options: IDefineTestCaseHookOptions, code: TestCaseHookFunction): void', gave the following error.
    Argument of type '(this: CustomWorld) => Promise<string>' is not assignable to parameter of type 'TestCaseHookFunction'.
      Type '(this: CustomWorld) => Promise<string>' is not assignable to type 'TestCaseHookFunctionWithoutParameter'.
        Type 'Promise<string>' is not assignable to type 'void | Promise<void>'.
          Type 'Promise<string>' is not assignable to type 'Promise<void>'.

v7 рдореЗрдВ рдХрд┐рд╕реА рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдХрдХрдбрд╝реА v7 рдХреЗ рд▓рд┐рдП Serenity/JS рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдареАрдХ рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЖрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рдпрд╣ v6 рдореЗрдВ рдХрд░рддреА рдереАред

@charlierudolph / @davidjgoss , рдХреНрдпрд╛ рдЖрдк рдпрд╣

support_code_library_builder/types.ts рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВ:

export type TestCaseHookFunctionWithoutParameter = () => void | Promise<void>
export type TestCaseHookFunctionWithParameter = (
  arg: ITestCaseHookParameter
) => void | Promise<void>

рдЪреВрдВрдХрд┐ рдХрдХрдбрд╝реА рд╣реБрдХ рдХреЛ void , string рдХрд╛ 'skipped' рдпрд╛ 'pending' , рдпрд╛ Promise рдЙрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ , рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

export type TestCaseHookFunctionResult = 'skipped' | 'pending' | void
export type TestCaseHookFunctionWithoutParameter = () => TestCaseHookFunctionResult | Promise<TestCaseHookFunctionResult>
export type TestCaseHookFunctionWithParameter = (
  arg: ITestCaseHookParameter
) => TestCaseHookFunctionResult | Promise<TestCaseHookFunctionResult>

рдЬрдм рддрдХ рдпрд╣ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдкрд░реАрдХреНрд╖рдг рд╣реБрдХ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛:

import { Before } from '@cucumber/cucumber';

Before({ tags: '<strong i="25">@ignore</strong>' }, function () {
    return 'skipped' as any;
});

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдХрдХрдбрд╝реА v7 рдХреЗ рд▓рд┐рдП Serenity/JS рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдареАрдХ рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЖрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рдпрд╣ v6 рдореЗрдВ рдХрд░рддреА рдереАред

@charlierudolph / @davidjgoss , рдХреНрдпрд╛ рдЖрдк рдпрд╣

support_code_library_builder/types.ts рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВ:

export type TestCaseHookFunctionWithoutParameter = () => void | Promise<void>
export type TestCaseHookFunctionWithParameter = (
  arg: ITestCaseHookParameter
) => void | Promise<void>

рдЪреВрдВрдХрд┐ рдХрдХрдбрд╝реА рд╣реБрдХ рдХреЛ void , string рдХрд╛ 'skipped' рдпрд╛ 'pending' , рдпрд╛ Promise рдЙрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ , рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

export type TestCaseHookFunctionResult = 'skipped' | 'pending' | void
export type TestCaseHookFunctionWithoutParameter = () => TestCaseHookFunctionResult | Promise<TestCaseHookFunctionResult>
export type TestCaseHookFunctionWithParameter = (
  arg: ITestCaseHookParameter
) => TestCaseHookFunctionResult | Promise<TestCaseHookFunctionResult>

рдЬрдм рддрдХ рдпрд╣ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдкрд░реАрдХреНрд╖рдг рд╣реБрдХ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛:

import { Before } from '@cucumber/cucumber';

Before({ tags: '<strong i="25">@ignore</strong>' }, function () {
    return 'skipped' as any;
});

рд╣рд╛рдп @ рдЬрд╛рди-рдореЛрд▓рдХ, рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб @ рдЬрди-рдореЛрд▓рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kozhevnikov picture kozhevnikov  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bmsoko picture bmsoko  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

protoman92 picture protoman92  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Niceplace picture Niceplace  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ