mirror of
https://github.com/larksuite/cli.git
synced 2026-07-06 00:06:28 +08:00
* feat(cmdutil): add X-Cli-Build header for CLI build classification Adds X-Cli-Build (official / extended / unknown) so the gateway can distinguish official CLI from ISV-repackaged builds. * test(cmdutil): lift coverage on build-kind classification Extract classifyBuild as a pure helper so every branch (unknown / extended main-path / extended credential / extended transport / extended fileio / official) is reachable without mutating process-wide provider registries. Also cover: isBuiltinProvider non-pointer values, BuildHeaderTransport nil-Base fallback path, and fix the Name-spoof test so the test double returns a value that actually mimics an ISV provider. Coverage on PR-changed functions: - classifyBuild: 100% (new) - computeBuildKind: 61.5% -> 93.3% - BuildHeaderTransport.RoundTrip: 80% -> 100%
35 lines
1017 B
Go
35 lines
1017 B
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
//go:build authsidecar
|
|
|
|
package cmdutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
sidecarcred "github.com/larksuite/cli/extension/credential/sidecar"
|
|
sidecartrans "github.com/larksuite/cli/extension/transport/sidecar"
|
|
)
|
|
|
|
// TestIsBuiltinProvider_SidecarProviders locks the classification for the
|
|
// sidecar-mode providers enumerated in design doc §3.3.2 as "官方自带". These
|
|
// types only compile when the `authsidecar` build tag is active, so the test
|
|
// is guarded by the same tag.
|
|
func TestIsBuiltinProvider_SidecarProviders(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
provider any
|
|
}{
|
|
{"sidecar credential provider", &sidecarcred.Provider{}},
|
|
{"sidecar transport provider", &sidecartrans.Provider{}},
|
|
}
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if !isBuiltinProvider(tc.provider) {
|
|
t.Fatalf("%T must be classified as builtin (PkgPath under %s)", tc.provider, officialModulePath)
|
|
}
|
|
})
|
|
}
|
|
}
|