mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-22 10:33:13 +00:00
The gate in the previous commit is decided by application.mode, and the shipped configuration says dev. So the deployment most likely to be serving the writing endpoints is the one that changed nothing, and that is also the one least likely to go looking for them. A gate whose default is open needs to say so. Nothing is said in demo mode. The routes are registered there, but DemoEvn refuses all three by name, so a warning would describe an exposure that is not present. The decision is split from the logging so it can be tested. Three counter-proofs: warning in demo as well fails mode=demo; a warning that never fires fails mode=dev, which is what shows the line can be reached at all; and one that always fires fails every mode but dev.
39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/go-admin-team/go-admin-core/v2/sdk/config"
|
|
)
|
|
|
|
// The warning fires exactly where the generator's writing endpoints are served
|
|
// and nothing else refuses them.
|
|
//
|
|
// dev is the case the warning exists for: it is the shipped default, so it is
|
|
// the mode a deployment that changed nothing is running in. demo serves the
|
|
// routes too, but DemoEvn refuses all three by name, so warning there would
|
|
// describe an exposure that is not there.
|
|
func TestGeneratorWriteRoutesWarningFiresWhereTheExposureIs(t *testing.T) {
|
|
for _, tc := range []struct {
|
|
mode string
|
|
want bool
|
|
why string
|
|
}{
|
|
{"dev", true, "shipped default, endpoints served and not refused"},
|
|
{"demo", false, "served, but DemoEvn refuses all three"},
|
|
{"test", false, "not served"},
|
|
{"prod", false, "not served"},
|
|
{"", false, "not served"},
|
|
} {
|
|
t.Run("mode="+tc.mode, func(t *testing.T) {
|
|
previous := config.ApplicationConfig.Mode
|
|
t.Cleanup(func() { config.ApplicationConfig.Mode = previous })
|
|
config.ApplicationConfig.Mode = tc.mode
|
|
|
|
if got := generatorWriteRoutesNeedWarning(); got != tc.want {
|
|
t.Errorf("mode %q: warning = %v, want %v (%s)", tc.mode, got, tc.want, tc.why)
|
|
}
|
|
})
|
|
}
|
|
}
|