Merge remote-tracking branch 'origin/main' into feat/1696-declaration-files
mesh/merge-gate head 8fc0d135bbe2 merged into trunk d568d76b9710 — pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus…
mesh/repo-check head 8fc0d135bbe2 merged into trunk d568d76b9710 — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/merge-gate head 8fc0d135bbe2 merged into trunk d568d76b9710 — pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus…
mesh/repo-check head 8fc0d135bbe2 merged into trunk d568d76b9710 — pass: its merge-check.sh passed
mesh/delivery delivered
# Conflicts: # go.mod # go.sum # testdata/beside/CAPTURED # vendor/modules.txt
This commit is contained in:
@@ -93,3 +93,27 @@ func TestTheSeatsListingShowsEachSeatsPaths(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 1718/AC2: a manifest claiming node-files that serves upload and download passes the controller's module
|
||||
// check, judged by the mesh-sdk it vendors; a verb outside the contract is still refused.
|
||||
func TestAFilesHolderServingUploadAndDownloadCanHoldTheSeat(t *testing.T) {
|
||||
seat, ok := catalogue.SeatNamed(catalogue.FilesSeat)
|
||||
if !ok {
|
||||
t.Fatal("node-files is not a seat")
|
||||
}
|
||||
serves := []string{"upload", "download"}
|
||||
for _, v := range seat.Serves {
|
||||
if v.Name != "upload" && v.Name != "download" {
|
||||
serves = append(serves, v.Name)
|
||||
}
|
||||
}
|
||||
holder := catalogue.Manifest{Module: "mesh-files", Version: "1", Claims: []catalogue.Claim{{
|
||||
Name: catalogue.FilesSeat, Scope: catalogue.ScopeNode, Serves: serves}}}
|
||||
if err := catalogue.CanHold(holder, seat); err != nil { // 1718/AC2
|
||||
t.Fatalf("a holder serving upload and download is refused: %v", err)
|
||||
}
|
||||
holder.Claims[0].Serves = append(append([]string{}, serves...), "teleport")
|
||||
if err := catalogue.CanHold(holder, seat); err == nil || !strings.Contains(err.Error(), "does not promise") {
|
||||
t.Fatalf("a verb outside the contract must be refused with 'does not promise': %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user