...
1 package containers
2
3 import (
4 "os"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 )
9
10 func TestParseRef(t *testing.T) {
11 tcs := map[string]struct {
12 in string
13 expected string
14 error bool
15 isFile bool
16 }{
17 "rules_docker output": {
18 "2023/12/12 05:40:43 Successfully pushed Docker image to localhost:21700/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
19 "localhost:21700/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
20 false,
21 false,
22 },
23 "space padded output": {
24 " us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
25 "us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
26 false,
27 false,
28 },
29 "empty": {
30 "",
31 "",
32 true,
33 false,
34 },
35 "output is already ref": {
36 "us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
37 "us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:48c902505622f3ecdd8ab80f3f98f8f946d31e10c0d50d85e95ae20df602109d",
38 false,
39 false,
40 },
41 "rules_oci existing logs": {
42 in: "testdata/existing.txt",
43 expected: "us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:933dfb273691e3fe7a82a84039b161eb20a040970b65b426639ca48e6afaeafd",
44 error: false,
45 isFile: true,
46 },
47 "rules_oci new image logs": {
48 in: "testdata/new.txt",
49 expected: "us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:fde8b0067cd2780aee14b3d900b25fb22d7ca1904c5a2f0e260361d570810669",
50 error: false,
51 isFile: true,
52 },
53 }
54
55 for name, tc := range tcs {
56 t.Run(name, func(t *testing.T) {
57 input := tc.in
58 if tc.isFile {
59 text, err := os.ReadFile(tc.in)
60 assert.NoErrorf(t, err, "TestParseRef: failed to read testdata file")
61 input = string(text)
62 }
63
64 ref, err := parseRef(input)
65 if tc.error {
66 assert.Error(t, err)
67 } else {
68 assert.NoError(t, err)
69 }
70
71 assert.Equal(t, tc.expected, ref.String())
72 })
73 }
74 }
75
View as plain text