MCPcopy Create free account
hub / github.com/goadesign/goa / TestBuildOperationID

Function TestBuildOperationID

http/codegen/openapi/v3/builder_test.go:383–460  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

381}
382
383func TestBuildOperationID(t *testing.T) {
384 const svcName = "test service"
385
386 cases := []struct {
387 Name string
388 DSL func()
389
390 ExpectedOperationIDs []string
391 }{
392 {
393 Name: "template_in_method",
394 DSL: dsls.OperationIDMethod(svcName, "template_in_method", "{method}"),
395 ExpectedOperationIDs: []string{"template_in_method"},
396 }, {
397 Name: "template_in_service",
398 DSL: dsls.OperationIDService(svcName, "template_in_service", "{service}"),
399 ExpectedOperationIDs: []string{"test service"},
400 }, {
401 Name: "template_in_api",
402 DSL: dsls.OperationIDAPI(svcName, "template_in_api", defaultOperationIDFormat),
403 ExpectedOperationIDs: []string{"test service#template_in_api"},
404 }, {
405 Name: "multiple_routes",
406 DSL: dsls.OperationIDMultipleRoutes(svcName, "multiple_routes", defaultOperationIDFormat),
407 ExpectedOperationIDs: []string{"test service#multiple_routes", "test service#multiple_routes#1"},
408 }, {
409 Name: "multiple_routes_custom_separator",
410 DSL: dsls.OperationIDMultipleRoutes(svcName, "multiple_routes_custom_separator", "{service}.{method}(.{routeIndex})"),
411 ExpectedOperationIDs: []string{"test service.multiple_routes_custom_separator", "test service.multiple_routes_custom_separator.1"},
412 }, {
413 Name: "multiple_routes_custom_separator_without_routeIndex",
414 DSL: dsls.OperationIDMultipleRoutes(svcName, "multiple_routes_custom_separator_without_routeIndex", "{service}.{method}"),
415 ExpectedOperationIDs: []string{"test service.multiple_routes_custom_separator_without_routeIndex", "test service.multiple_routes_custom_separator_without_routeIndex#1"},
416 }, {
417 Name: "multiple_routes_no_routeIndex_separator",
418 DSL: dsls.OperationIDMultipleRoutes(svcName, "multiple_routes_no_routeIndex_separator", "{service}.{method}({routeIndex})"),
419 ExpectedOperationIDs: []string{"test service.multiple_routes_no_routeIndex_separator", "test service.multiple_routes_no_routeIndex_separator1"},
420 }, {
421 Name: "multiple_routes_long_separator",
422 DSL: dsls.OperationIDMultipleRoutes(svcName, "multiple_routes_long_separator", "{service}.{method}(someWordsHere and maybe some spaces{routeIndex})"),
423 ExpectedOperationIDs: []string{"test service.multiple_routes_long_separator", "test service.multiple_routes_long_separatorsomeWordsHere and maybe some spaces1"},
424 }, {
425 Name: "custom_static_operation_id",
426 DSL: dsls.OperationIDMethod(svcName, "custom_static_operation_id", "listThings"),
427 ExpectedOperationIDs: []string{"listThings"},
428 },
429 }
430
431 for _, c := range cases {
432 t.Run(c.Name, func(t *testing.T) {
433 api := codegen.RunDSL(t, c.DSL).API
434
435 if len(api.HTTP.Services) == 0 {
436 t.Error("no HTTP service created from DSL")
437 }
438
439 for _, s := range api.HTTP.Services {
440 if s.Name() == svcName {

Callers

nothing calls this directly

Calls 6

RunDSLFunction · 0.92
NewRandomFunction · 0.92
buildOperationFunction · 0.85
NameMethod · 0.65
RunMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected