func()

in pkg/runner/step_parser.go [38:60]


func (p *Parser) parseStepType(globalCtx *GlobalContext, specDef *SpecDefinition, params *Params, loadedFrom StepReference) (Step, error) {
	if specDef.IsTypeExec() {
		return NewExecutableStep(loadedFrom, params, specDef), nil
	}

	if specDef.IsTypeSteps() {
		var steps []Step

		for _, stepReference := range specDef.Steps() {
			stepResource, err := p.stepResParser.Parse(specDef.Dir(), stepReference.Step)

			if err != nil {
				return nil, err
			}

			steps = append(steps, NewLazilyLoadedStep(globalCtx, p, stepReference, stepResource))
		}

		return NewSequenceOfSteps(loadedFrom, params, specDef, steps...), nil
	}

	return nil, fmt.Errorf("unknown step definition type: %s", specDef.DescribeType())
}