mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
One commit with exactly the tree of the reviewed head35b4509c0a, on main12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
50 lines
1.7 KiB
Go
50 lines
1.7 KiB
Go
package credentialform
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func aCatalogue(t *testing.T, manifests map[string]string) string {
|
|
t.Helper()
|
|
root := t.TempDir()
|
|
for module, body := range manifests {
|
|
dir := filepath.Join(root, "modules", module)
|
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(dir, "module.json"), []byte(body), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
return root
|
|
}
|
|
|
|
// An offer that says no form is refused and named; one that says pair, none or an own secret passes; and the real
|
|
// catalogue is clean.
|
|
func TestEveryOfferSaysTheFormOfItsCredential(t *testing.T) {
|
|
root := aCatalogue(t, map[string]string{
|
|
"silent": `{"module":"silent","provides":[{"name":"thing","scope":"mesh"}]}`,
|
|
"binder": `{"module":"binder","provides":[{"name":"d","credential":{"form":"pair"}}],"state":["bound"]}`,
|
|
"mesh-provisioner": `{"module":"mesh-provisioner","reads":["other.bound"]}`,
|
|
"says": `{"module":"says","provides":[{"name":"a","credential":{"form":"pair"}},{"name":"b","credential":{"form":"none"}},{"name":"c","credential":{"own":"jwt"}}]}`,
|
|
})
|
|
got, err := Problems(root)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(got) != 2 || !strings.Contains(got[0], `silent provides "thing"`) ||
|
|
!strings.Contains(got[1], "binder") || !strings.Contains(got[1], "mesh-provisioner") {
|
|
t.Fatalf("refused %v, wanted the silent offer and the binder the provisioner does not read", got)
|
|
}
|
|
real, err := Problems(filepath.Join("..", ".."))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(real) != 0 {
|
|
t.Fatalf("the catalogue has offers with no credential form:\n%s", strings.Join(real, "\n"))
|
|
}
|
|
}
|