carlos / platform Public

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

Plain git — no account needed to clone.

Download

Download this file

1package appconfig
2
3import (
4 "encoding/json"
5 "github.com/carlosframework/platform/internal/registry"
6 "github.com/carlosframework/platform/internal/release"
7 "testing"
8)
9
10func TestPlan9ConfigIdentityRejectsChangedRender(t *testing.T) {
11 s := release.NewDirStore(t.TempDir())
12 rt := registry.Route{Host: "x.example", Account: "bab", App: "demo"}
13 m := Manifest{Schema: 1, App: rt.App, Vars: map[string]Var{"VALUE": {Kind: "env", Value: "one"}}}
14 raw, _ := json.Marshal(m)
15 tag, err := s.Put(t.Context(), Key(rt.Account, rt.App), raw, "")
16 if err != nil {
17 t.Fatal(err)
18 }
19 rendered, err := RenderEnv(&m, nil, routeBinding(rt))
20 if err != nil {
21 t.Fatal(err)
22 }
23 id := renderedIdentity(rendered, true, false, false)
24 if err := CheckRenderedIdentity(t.Context(), s, nil, rt, id); err != nil {
25 t.Fatal(err)
26 }
27 m.Vars["VALUE"] = Var{Kind: "env", Value: "two"}
28 raw, _ = json.Marshal(m)
29 if _, err = s.Put(t.Context(), Key(rt.Account, rt.App), raw, tag); err != nil {
30 t.Fatal(err)
31 }
32 if err := CheckRenderedIdentity(t.Context(), s, nil, rt, id); err == nil {
33 t.Fatal("stale render accepted")
34 }
35}
36