carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package host
2
3import (
4 "context"
5 "errors"
6 "testing"
7
8 "github.com/carlosframework/platform/internal/activator"
9 "github.com/carlosframework/platform/internal/hostwrite"
10 "github.com/carlosframework/platform/internal/schedule"
11)
12
13type entrySelector struct{}
14
15func (entrySelector) Select(context.Context, string, string) (hostwrite.Work, error) { return nil, nil }
16
17func TestAgentClaimConsumersUseStartupWiring(t *testing.T) {
18 sel := entrySelector{}
19 w := &ClaimWiring{Writes: hostwrite.Config{Enabled: true, Selector: sel}, Providers: ClaimProviders{Wake: &activator.ClaimRuntime{}}}
20 cfg := &activator.Config{}
21 sd := &scheduleDeps{runner: &schedule.Runner{}, conv: &schedule.Converger{}}
22 if err := configureWakeClaims(w, cfg); err != nil {
23 t.Fatal(err)
24 }
25 if err := configureScheduleClaims(w, sd); err != nil {
26 t.Fatal(err)
27 }
28 if !cfg.HostWrites.Enabled || cfg.Claims != w.Providers.Wake || !sd.runner.HostWrites.Enabled || !sd.conv.HostWrites.Enabled {
29 t.Fatal("startup claim wiring was not propagated to every agent consumer")
30 }
31}
32
33func TestAgentClaimConsumersRefuseMissingEnabledDependencies(t *testing.T) {
34 w := &ClaimWiring{Writes: hostwrite.Config{Enabled: true, Selector: entrySelector{}}, Providers: ClaimProviders{Wake: &activator.ClaimRuntime{}}}
35 if err := configureWakeClaims(w, nil); !errors.Is(err, hostwrite.ErrUnavailable) {
36 t.Fatalf("wake error = %v", err)
37 }
38 if err := configureScheduleClaims(w, &scheduleDeps{runner: &schedule.Runner{}}); !errors.Is(err, hostwrite.ErrUnavailable) {
39 t.Fatalf("schedule error = %v", err)
40 }
41}
42
43func TestDisabledAgentClaimConsumersPreserveZeroConfig(t *testing.T) {
44 w := &ClaimWiring{}
45 cfg := &activator.Config{}
46 sd := &scheduleDeps{runner: &schedule.Runner{}, conv: &schedule.Converger{}}
47 if err := configureWakeClaims(w, cfg); err != nil {
48 t.Fatal(err)
49 }
50 if err := configureScheduleClaims(w, sd); err != nil {
51 t.Fatal(err)
52 }
53 if cfg.HostWrites.Enabled || sd.runner.HostWrites.Enabled || sd.conv.HostWrites.Enabled {
54 t.Fatal("disabled startup changed consumers")
55 }
56}
57