mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-09-19 09:40:12 +00:00
47 lines
1.8 KiB
Go
47 lines
1.8 KiB
Go
package evidence
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/nezhahq/nezha/integration/agentcompat/internal/contract"
|
|
)
|
|
|
|
func TestEvidence_DedicatedArtifactsRequireExactScenarioAssertions(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
scenario string
|
|
assertion string
|
|
artifact func(*testing.T, string)
|
|
}{
|
|
{"transfer generic", contract.ScenarioTransfer100MiB, "scenario passed", func(t *testing.T, dir string) {
|
|
writeJSONEvidenceFile(t, dir, "transfer.json", validTransferArtifact("", true))
|
|
}},
|
|
{"transfer mismatched", contract.ScenarioTransfer100MiB, contract.AssertionReconnectDisconnect, func(t *testing.T, dir string) {
|
|
writeJSONEvidenceFile(t, dir, "transfer.json", validTransferArtifact("", true))
|
|
}},
|
|
{"reconnect generic", contract.ScenarioReconnect, "scenario passed", func(t *testing.T, dir string) {
|
|
writeJSONEvidenceFile(t, dir, "reconnect.json", validReconnectArtifact(t, "", true))
|
|
}},
|
|
{"reconnect mismatched", contract.ScenarioReconnect, contract.AssertionTransferWarmup, func(t *testing.T, dir string) {
|
|
writeJSONEvidenceFile(t, dir, "reconnect.json", validReconnectArtifact(t, "", true))
|
|
}},
|
|
}
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
dir := t.TempDir()
|
|
writeDedicatedExecutableEvidence(t, dir, test.scenario, "", true)
|
|
results := Results{Profile: "pr-full", Passed: true, Scenarios: []ScenarioResult{{Name: test.scenario, Passed: true, Assertions: []Assertion{{Name: test.assertion, Passed: true}}}}}
|
|
writeJSONEvidenceFile(t, dir, "results.json", results)
|
|
junit, err := JUnit(results)
|
|
if err != nil {
|
|
t.Fatalf("JUnit: %v", err)
|
|
}
|
|
writeEvidenceFile(t, dir, "junit.xml", string(junit))
|
|
test.artifact(t, dir)
|
|
if err := ValidateDirectory(dir); err == nil {
|
|
t.Fatal("generic assertion accepted for dedicated evidence")
|
|
}
|
|
})
|
|
}
|
|
}
|