static number()

in x-test.js [1015:1047]


  static number(context, stepId) {
    const step = context.state.steps[stepId];
    switch (step.type) {
      case 'it': {
        const it = context.state.its[step.itId]; // eslint-disable-line no-shadow
        const parentChildren = it.parents.at(-1)?.type === 'describe'
          ? context.state.describes[it.parents.at(-1).describeId].children
          : context.state.tests[it.parents.at(-1).testId].children;
        const index = parentChildren.findIndex(candidate => candidate.itId === it.itId);
        return index + 1;
      }
      case 'describe-end': {
        const describe = context.state.describes[step.describeId]; // eslint-disable-line no-shadow
        const parentChildren = describe.parents.at(-1)?.type === 'describe'
          ? context.state.describes[describe.parents.at(-1).describeId].children
          : context.state.tests[describe.parents.at(-1).testId].children;
        const index = parentChildren.findIndex(candidate => candidate.describeId === describe.describeId);
        return index + 1;
      }
      case 'test-end': {
        const test = context.state.tests[step.testId]; // eslint-disable-line no-shadow
        const index = context.state.children.findIndex(candidate => candidate.testId === test.testId);
        return index + 1;
      }
      case 'coverage': {
        const coverage = context.state.coverages[step.coverageId]; // eslint-disable-line no-shadow
        const index = context.state.children.findIndex(candidate => candidate.coverageId === coverage.coverageId);
        return index + 1;
      }
      default:
        throw new Error(`Unexpected type "${step.type}".`);
    }
  }