Skip to content

Commit

Permalink
localstate: tests
Browse files Browse the repository at this point in the history
Signed-off-by: CrazyMax <[email protected]>
  • Loading branch information
crazy-max committed Sep 29, 2023
1 parent e9fb769 commit 130e9fe
Showing 1 changed file with 99 additions and 0 deletions.
99 changes: 99 additions & 0 deletions localstate/localstate_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
package localstate

import (
"path/filepath"
"testing"

"github.com/stretchr/testify/require"
)

func TestNew(t *testing.T) {
_ = newls(t)
}

func TestReadRef(t *testing.T) {
l := newls(t)
r, err := l.ReadRef(testBuilderName, testNodeName, testStateRefID)
require.NoError(t, err)
require.Equal(t, testStateRef, *r)
}

func TestReadGroup(t *testing.T) {
l := newls(t)
g, err := l.ReadGroup(testStateGroupID)
require.NoError(t, err)
require.Equal(t, testStateGroup, *g)
}

func TestRemoveBuilder(t *testing.T) {
l := newls(t)
require.NoError(t, l.RemoveBuilder(testBuilderName))
}

func TestRemoveBuilderNode(t *testing.T) {
l := newls(t)
require.NoError(t, l.RemoveBuilderNode(testBuilderName, testNodeName))
}

func newls(t *testing.T) *LocalState {
t.Helper()
tmpdir := t.TempDir()

l, err := New(tmpdir)
require.NoError(t, err)
require.DirExists(t, filepath.Join(tmpdir, refsDir))
require.Equal(t, tmpdir, l.root)

require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateRefID, testStateRef))

require.NoError(t, l.SaveGroup(testStateGroupID, testStateGroup))
require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef1ID, testStateGroupRef1))
require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef2ID, testStateGroupRef2))
require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef3ID, testStateGroupRef3))

return l
}

var (
testBuilderName = "builder"
testNodeName = "builder0"

testStateRefID = "32n3ffqrxjw41ok5zxd2qhume"
testStateRef = State{
Target: "default",
LocalPath: "/home/foo/github.com/docker/docker-bake-action",
DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
}

testStateGroupID = "kvqs0sgly2rmitz84r25u9qd0"
testStateGroup = StateGroup{
Definition: []byte(`{"group":{"default":{"targets":["pre-checkin"]},"pre-checkin":{"targets":["vendor-update","format","build"]}},"target":{"build":{"context":".","dockerfile":"dev.Dockerfile","target":"build-update","platforms":["linux/amd64"],"output":["."]},"format":{"context":".","dockerfile":"dev.Dockerfile","target":"format-update","platforms":["linux/amd64"],"output":["."]},"vendor-update":{"context":".","dockerfile":"dev.Dockerfile","target":"vendor-update","platforms":["linux/amd64"],"output":["."]}}}`),
Targets: []string{"pre-checkin"},
Inputs: []string{"*.platform=linux/amd64"},
Refs: []string{"builder/builder0/hx2qf1w11qvz1x3k471c5i8xw", "builder/builder0/968zj0g03jmlx0s8qslnvh6rl", "builder/builder0/naf44f9i1710lf7y12lv5hb1z"},
}

testStateGroupRef1ID = "hx2qf1w11qvz1x3k471c5i8xw"
testStateGroupRef1 = State{
Target: "format",
LocalPath: "/home/foo/github.com/docker/docker-bake-action",
DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
GroupRef: "kvqs0sgly2rmitz84r25u9qd0",
}

testStateGroupRef2ID = "968zj0g03jmlx0s8qslnvh6rl"
testStateGroupRef2 = State{
Target: "build",
LocalPath: "/home/foo/github.com/docker/docker-bake-action",
DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
GroupRef: "kvqs0sgly2rmitz84r25u9qd0",
}

testStateGroupRef3ID = "naf44f9i1710lf7y12lv5hb1z"
testStateGroupRef3 = State{
Target: "vendor-update",
LocalPath: "/home/foo/github.com/docker/docker-bake-action",
DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
GroupRef: "kvqs0sgly2rmitz84r25u9qd0",
}
)

0 comments on commit 130e9fe

Please sign in to comment.