How to use getStepNameFromRunner method of refactor Package

Best Gauge code snippet using refactor.getStepNameFromRunner

refactor.go

Source:refactor.go Github

copy

Full Screen

...111		result.Errors = append(result.Errors, "Cannot perform refactoring: Unable to connect to runner."+err.Error())112		return result113	}114	if !agent.isConcept {115		stepName, err, warning := agent.getStepNameFromRunner(runner)116		if err != nil {117			result.Errors = append(result.Errors, err.Error())118			return result119		}120		if warning == nil {121			runnerFilesChanged, err := agent.requestRunnerForRefactoring(runner, stepName)122			if err != nil {123				result.Errors = append(result.Errors, fmt.Sprintf("Cannot perform refactoring: %s", err))124				return result125			}126			result.runnerFilesChanged = runnerFilesChanged127		} else {128			result.warnings = append(result.warnings, warning.Message)129		}130	}131	specFiles, conceptFiles := writeToConceptAndSpecFiles(specs, conceptDictionary, specsRefactored, conceptFilesRefactored)132	result.specsChanged = specFiles133	result.Success = true134	result.conceptsChanged = conceptFiles135	return result136}137func (agent *rephraseRefactorer) rephraseInSpecsAndConcepts(specs *[]*gauge.Specification, conceptDictionary *gauge.ConceptDictionary) (map[*gauge.Specification]bool, map[string]bool) {138	specsRefactored := make(map[*gauge.Specification]bool, 0)139	conceptFilesRefactored := make(map[string]bool, 0)140	orderMap := agent.createOrderOfArgs()141	for _, spec := range *specs {142		specsRefactored[spec] = spec.RenameSteps(*agent.oldStep, *agent.newStep, orderMap)143	}144	isConcept := false145	for _, concept := range conceptDictionary.ConceptsMap {146		_, ok := conceptFilesRefactored[concept.FileName]147		conceptFilesRefactored[concept.FileName] = !ok && false || conceptFilesRefactored[concept.FileName]148		for _, item := range concept.ConceptStep.Items {149			isRefactored := conceptFilesRefactored[concept.FileName]150			conceptFilesRefactored[concept.FileName] = item.Kind() == gauge.StepKind &&151				item.(*gauge.Step).Rename(*agent.oldStep, *agent.newStep, isRefactored, orderMap, &isConcept) ||152				isRefactored153		}154	}155	agent.isConcept = isConcept156	return specsRefactored, conceptFilesRefactored157}158func (agent *rephraseRefactorer) createOrderOfArgs() map[int]int {159	orderMap := make(map[int]int, len(agent.newStep.Args))160	for i, arg := range agent.newStep.Args {161		orderMap[i] = SliceIndex(len(agent.oldStep.Args), func(i int) bool { return agent.oldStep.Args[i].String() == arg.String() })162	}163	return orderMap164}165func SliceIndex(limit int, predicate func(i int) bool) int {166	for i := 0; i < limit; i++ {167		if predicate(i) {168			return i169		}170	}171	return -1172}173func getRefactorAgent(oldStepText, newStepText string, startChan *runner.StartChannels) (*rephraseRefactorer, []parser.ParseError) {174	specParser := new(parser.SpecParser)175	stepTokens, errs := specParser.GenerateTokens("* "+oldStepText+"\n"+"*"+newStepText, "")176	if len(errs) > 0 {177		return nil, errs178	}179	steps := make([]*gauge.Step, 0)180	for _, stepToken := range stepTokens {181		step, parseRes := parser.CreateStepUsingLookup(stepToken, nil, "")182		if parseRes != nil && len(parseRes.ParseErrors) > 0 {183			return nil, parseRes.ParseErrors184		}185		steps = append(steps, step)186	}187	return &rephraseRefactorer{oldStep: steps[0], newStep: steps[1], startChan: startChan}, []parser.ParseError{}188}189func (agent *rephraseRefactorer) requestRunnerForRefactoring(testRunner runner.Runner, stepName string) ([]string, error) {190	refactorRequest, err := agent.createRefactorRequest(testRunner, stepName)191	if err != nil {192		return nil, err193	}194	refactorResponse := agent.sendRefactorRequest(testRunner, refactorRequest)195	var runnerError error196	if !refactorResponse.GetSuccess() {197		logger.APILog.Error("Refactoring error response from runner: %v", refactorResponse.GetError())198		runnerError = errors.New(refactorResponse.GetError())199	}200	return refactorResponse.GetFilesChanged(), runnerError201}202func (agent *rephraseRefactorer) sendRefactorRequest(testRunner runner.Runner, refactorRequest *gauge_messages.Message) *gauge_messages.RefactorResponse {203	response, err := conn.GetResponseForMessageWithTimeout(refactorRequest, testRunner.Connection(), config.RefactorTimeout())204	if err != nil {205		return &gauge_messages.RefactorResponse{Success: false, Error: err.Error()}206	}207	return response.GetRefactorResponse()208}209//Todo: Check for inline tables210func (agent *rephraseRefactorer) createRefactorRequest(runner runner.Runner, stepName string) (*gauge_messages.Message, error) {211	oldStepValue, err := agent.getStepValueFor(agent.oldStep, stepName)212	if err != nil {213		return nil, err214	}215	orderMap := agent.createOrderOfArgs()216	newStepName := agent.generateNewStepName(oldStepValue.Args, orderMap)217	newStepValue, err := parser.ExtractStepValueAndParams(newStepName, false)218	if err != nil {219		return nil, err220	}221	oldProtoStepValue := gauge.ConvertToProtoStepValue(oldStepValue)222	newProtoStepValue := gauge.ConvertToProtoStepValue(newStepValue)223	return &gauge_messages.Message{MessageType: gauge_messages.Message_RefactorRequest, RefactorRequest: &gauge_messages.RefactorRequest{OldStepValue: oldProtoStepValue, NewStepValue: newProtoStepValue, ParamPositions: agent.createParameterPositions(orderMap)}}, nil224}225func (agent *rephraseRefactorer) generateNewStepName(args []string, orderMap map[int]int) string {226	agent.newStep.PopulateFragments()227	paramIndex := 0228	for _, fragment := range agent.newStep.Fragments {229		if fragment.GetFragmentType() == gauge_messages.Fragment_Parameter {230			if orderMap[paramIndex] != -1 {231				fragment.GetParameter().Value = args[orderMap[paramIndex]]232			}233			paramIndex++234		}235	}236	return parser.ConvertToStepText(agent.newStep.Fragments)237}238func (agent *rephraseRefactorer) getStepNameFromRunner(runner runner.Runner) (string, error, *parser.Warning) {239	stepNameMessage := &gauge_messages.Message{MessageType: gauge_messages.Message_StepNameRequest, StepNameRequest: &gauge_messages.StepNameRequest{StepValue: agent.oldStep.Value}}240	responseMessage, err := conn.GetResponseForMessageWithTimeout(stepNameMessage, runner.Connection(), config.RunnerRequestTimeout())241	if err != nil {242		return "", err, nil243	}244	if !(responseMessage.GetStepNameResponse().GetIsStepPresent()) {245		return "", nil, &parser.Warning{Message: fmt.Sprintf("Step implementation not found: %s", agent.oldStep.LineText)}246	}247	if responseMessage.GetStepNameResponse().GetHasAlias() {248		return "", fmt.Errorf("steps with aliases : '%s' cannot be refactored.", strings.Join(responseMessage.GetStepNameResponse().GetStepName(), "', '")), nil249	}250	return responseMessage.GetStepNameResponse().GetStepName()[0], nil, nil251}252func (agent *rephraseRefactorer) createParameterPositions(orderMap map[int]int) []*gauge_messages.ParameterPosition {...

Full Screen

Full Screen

getStepNameFromRunner

Using AI Code Generation

copy

Full Screen

1import (2func main() {3	pipelineRun := &v1alpha1.PipelineRun{}4	pipelineRunState := &resources.PipelineRunState{}5	pipelineRunState.Initialize(pipelineRun)6	pipelineState := &resources.PipelineRunState{}7	pipelineState.Initialize(pipelineRunState)8	d := &resources.PipelineRunState{}9	d.Initialize(pipelineState)10	getStepNameFromRunner := d.GetStepNameFromRunner(stepName)11	fmt.Println(getStepNameFromRunner)12}13import (14func main() {15	pipelineRun := &v1alpha1.PipelineRun{}16	pipelineRunState := &resources.PipelineRunState{}17	pipelineRunState.Initialize(pipelineRun)18	pipelineState := &resources.PipelineRunState{}19	pipelineState.Initialize(pipelineRunState)20	d := &resources.PipelineRunState{}21	d.Initialize(pipelineState)22	getStepNameFromRunner := d.GetStepNameFromRunner(stepName)23	fmt.Println(getStepNameFromRunner)24}

Full Screen

Full Screen

getStepNameFromRunner

Using AI Code Generation

copy

Full Screen

1import (2func main() {3	fmt.Println("Hello, playground")4	fmt.Println(refactor.GetStepNameFromRunner("step1"))5	fmt.Println(refactor.GetStepNameFromRunner("step2"))6}7import (8func GetStepNameFromRunner(runnerName stri

Full Screen

Full Screen

getStepNameFromRunner

Using AI Code Generation

copy

Full Screen

1import (2func main() {3	progLoader := loader.Config{}4	prog, err := progLoader.Load()5	if err != nil {6		log.Fatal(err)7	}8	r := refactoring.NewRefactoring(prog)9	fset := token.NewFileSet()10	f, err := parser.ParseFile(fset, "1.go", nil, parser.ParseComments)11	if err != nil {12		log.Fatal(err)13	}14	ctx := r.NewContext(info)15	cursor := r.NewCursor(ctx, f)16	selection := r.NewSelection(cursor)17	stepName := getStepNameFromRunner(f, info, selection)18	fmt.Println(stepName)19}20func getStepNameFromRunner(f *ast.File, info *types.Info, selection *refactoring.Selection) string {21	stepName := selection.GetStepNameFromRunner(f, info)22}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Gauge automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful