MCPcopy
hub / github.com/caddyserver/caddy / TestAdminRouterProvisioning

Function TestAdminRouterProvisioning

admin_test.go:514–577  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

512}
513
514func TestAdminRouterProvisioning(t *testing.T) {
515 tests := []struct {
516 name string
517 provisionErr error
518 wantErr bool
519 }{
520 {
521 name: "successful provisioning",
522 provisionErr: nil,
523 wantErr: false,
524 },
525 {
526 name: "provisioning error",
527 provisionErr: fmt.Errorf("provision failed"),
528 wantErr: true,
529 },
530 }
531
532 for _, test := range tests {
533 t.Run(test.name, func(t *testing.T) {
534 originalModules := make(map[string]ModuleInfo)
535 maps.Copy(originalModules, modules)
536 defer func() {
537 modules = originalModules
538 }()
539
540 mockRoute := AdminRoute{
541 Pattern: "/mock",
542 Handler: AdminHandlerFunc(func(w http.ResponseWriter, r *http.Request) error {
543 return nil
544 }),
545 }
546
547 // Create provisionable module
548 mock := &mockProvisionableModule{
549 mockProvisionableRouter: &mockProvisionableRouter{
550 mockRouter: mockRouter{
551 routes: []AdminRoute{mockRoute},
552 },
553 provisionErr: test.provisionErr,
554 },
555 }
556 RegisterModule(mock)
557
558 admin := &AdminConfig{}
559 addr, err := ParseNetworkAddress("localhost:2019")
560 if err != nil {
561 t.Fatalf("Failed to parse address: %v", err)
562 }
563
564 _, err = admin.newAdminHandler(addr, false, Context{})
565
566 if test.wantErr {
567 if err == nil {
568 t.Error("Expected error but got nil")
569 }
570 } else {
571 if err != nil {

Callers

nothing calls this directly

Calls 5

newAdminHandlerMethod · 0.95
AdminHandlerFuncFuncType · 0.85
RegisterModuleFunction · 0.85
ParseNetworkAddressFunction · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected