27 lines
1.1 KiB
Go
27 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/novox/mesh-controller/internal/conditions"
|
|
"github.com/novox/mesh-controller/internal/link"
|
|
)
|
|
|
|
// A provider that keeps failing a consumer is a problem `status` names (novox/hq ADR 0224), kept as
|
|
// the condition store's first kind (to-be 45 §2). On 2026-10-05 the identity provider refused every
|
|
// consumer for a day and status called the mesh well (04-ISSUES/179): this is that day, told to the
|
|
// controller the way the provider now tells it.
|
|
|
|
// A provider no longer assigned where it ran has nothing running to fail anybody: its last word is
|
|
// cleared on the next look, said as resolved by the assignment.
|
|
|
|
// **The store away holds a recovery** (ADR 0224 §3): a standing that cannot be kept is asked again.
|
|
func TestAStandingTheStoreCannotKeepIsAskedAgain(t *testing.T) {
|
|
kept := standings{keeper: func() *conditions.Keeper { return nil }}
|
|
if _, err := kept.Stood(t.Context(), link.Standing{Module: "idp", ProviderNode: "anchor", Consumer: "x"}); err == nil ||
|
|
!strings.Contains(err.Error(), link.ErrTryAgain.Error()) {
|
|
t.Fatalf("answered %v", err)
|
|
}
|
|
}
|