Host hrbrain, markdown, pat, and profile under dingtalk-misc, retire their standalone packages, and rename dws-shared to dingtalk-shared across live paths, coverage, installers, and policy. Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
1.0 KiB
Go
31 lines
1.0 KiB
Go
package app
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// TestMultiSkillSharedContractKeepsAccountSafetyRule pins the multi-account
|
|
// safety rule that release run 30437390088 found missing: the MultiSkill e2e
|
|
// contract asserts the exact phrase below inside the installed
|
|
// dingtalk-shared/SKILL.md, so removing it from the embedded skill source must
|
|
// fail at PR time instead of at release time.
|
|
func TestMultiSkillSharedContractKeepsAccountSafetyRule(t *testing.T) {
|
|
dir, cleanup, err := materializeEmbeddedSkillSource(skillSetupModeMulti)
|
|
if err != nil {
|
|
t.Fatalf("materialize embedded multi skill source: %v", err)
|
|
}
|
|
t.Cleanup(cleanup)
|
|
|
|
data, err := os.ReadFile(filepath.Join(dir, "dingtalk-shared", "SKILL.md"))
|
|
if err != nil {
|
|
t.Fatalf("read embedded dingtalk-shared/SKILL.md: %v", err)
|
|
}
|
|
const rule = "禁止选择第一项、最近登录或最近使用账号"
|
|
if !strings.Contains(string(data), rule) {
|
|
t.Fatalf("embedded dingtalk-shared/SKILL.md lost the mandatory account safety rule %q", rule)
|
|
}
|
|
}
|