feat: add deployment foundation and cross-device handoff
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRepositoryRejectsUntrustedRequests(t *testing.T) {
|
||||
for _, input := range []string{`{}`, `{"directory":"secret-relative","suite":"resolute","architecture":"amd64","versions":{}}`,
|
||||
`{"directory":"secret-relative","suite":"resolute","architecture":"amd64","versions":{},"repositoryAuthenticated":true}`} {
|
||||
var out, diagnostics bytes.Buffer
|
||||
if Run([]string{"verify-repository"}, strings.NewReader(input), &out, &diagnostics, time.Now) == 0 {
|
||||
t.Fatal("accepted invalid request")
|
||||
}
|
||||
if out.Len() != 0 || strings.Contains(diagnostics.String(), "secret-relative") {
|
||||
t.Fatal("invalid response leaked input")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestArtifactCommandRejectsCallerTrust(t *testing.T) {
|
||||
for _, field := range []string{`"packageBytesVerified":true`, `"repositoryAuthenticated":true`, `"lock":{}`} {
|
||||
var out, diagnostics bytes.Buffer
|
||||
input := `{"directory":"secret-relative","artifactDirectory":"secret-artifacts","suite":"resolute","architecture":"amd64","versions":{},` + field + `}`
|
||||
if Run([]string{"verify-artifacts"}, strings.NewReader(input), &out, &diagnostics, time.Now) == 0 {
|
||||
t.Fatal("caller trust accepted")
|
||||
}
|
||||
if out.Len() != 0 || strings.Contains(diagnostics.String(), "secret") {
|
||||
t.Fatal("input leaked")
|
||||
}
|
||||
if diagnostics.String() != "invalid artifact verification request\n" {
|
||||
t.Fatal("request was not rejected at the protocol boundary", diagnostics.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user