39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package delivery_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.novox.be/novox/mesh-sdk/go/buildstep"
|
|
"git.novox.be/novox/mesh-sdk/go/delivery"
|
|
)
|
|
|
|
// 1887/A1b: the ask's step key is <node>.<ask id>, watched with *.<ask id>, and its parser refuses another bucket's key.
|
|
func TestAskStepKey(t *testing.T) {
|
|
id := buildstep.NewID() // an ask's id is a step id
|
|
key, err := delivery.AskStepKey("shanks", id)
|
|
if err != nil || key != "shanks."+id {
|
|
t.Fatalf("AskStepKey = %q, %v", key, err)
|
|
}
|
|
if w, err := delivery.AskStepWatch(id); err != nil || w != "*."+id {
|
|
t.Fatalf("AskStepWatch = %q, %v", w, err)
|
|
}
|
|
node, got, err := delivery.ParseAskStepKey(key)
|
|
if err != nil || node != "shanks" || got != id {
|
|
t.Fatalf("ParseAskStepKey = %q %q %v", node, got, err)
|
|
}
|
|
for _, other := range []string{
|
|
"shanks.mesh-delivery-view", // a have key
|
|
"shanks.node", // a node's own have key
|
|
"shanks.postgres", // a have key whose module is one token
|
|
"mesh-delivery-builder_builds.x", // a pulse key
|
|
"shanks",
|
|
} {
|
|
if _, _, err := delivery.ParseAskStepKey(other); err == nil {
|
|
t.Errorf("parsed %q", other)
|
|
}
|
|
}
|
|
if _, err := delivery.AskStepKey("shanks", "postgres"); err == nil {
|
|
t.Error("AskStepKey took a module's name for an ask id")
|
|
}
|
|
}
|