Merge pull request #64 from blocklayerhq/cue-error-tests
Unit tests to reproduce issue #19 and narrow down root cause.
This commit is contained in:
commit
1a12acafc8
@ -5,6 +5,48 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Test that default values in spec are applied at the component level
|
||||
// See issue #19
|
||||
func TestComponentDefaults(t *testing.T) {
|
||||
t.Skip("FIXME: issue #19")
|
||||
cc := &Compiler{}
|
||||
v, err := cc.Compile("", `
|
||||
#dagger: compute: [
|
||||
{
|
||||
do: "fetch-container"
|
||||
ref: "busybox"
|
||||
},
|
||||
{
|
||||
do: "exec"
|
||||
args: ["sh", "-c", """
|
||||
echo hello > /tmp/out
|
||||
"""]
|
||||
// dir: "/"
|
||||
}
|
||||
]
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
c, err := v.Component()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Issue #19 is triggered by:
|
||||
// 1. Compile component
|
||||
// 2. Get compute script from component
|
||||
// 3. Walk script
|
||||
s, err := c.ComputeScript()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := s.Walk(context.TODO(), func(op *Op) error {
|
||||
return nil
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateEmptyComponent(t *testing.T) {
|
||||
cc := &Compiler{}
|
||||
v, err := cc.Compile("", "#dagger: compute: _")
|
||||
|
@ -6,6 +6,44 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Test that default values in spec are applied
|
||||
func TestScriptDefaults(t *testing.T) {
|
||||
cc := &Compiler{}
|
||||
v, err := cc.Compile("", `
|
||||
{
|
||||
do: "exec"
|
||||
args: ["sh", "-c", """
|
||||
echo hello > /tmp/out
|
||||
"""]
|
||||
// dir: "/"
|
||||
}
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
op, err := v.Op()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := op.Validate(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
dir, err := op.Get("dir").String()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if dir != "/" {
|
||||
t.Fatal(dir)
|
||||
}
|
||||
t.Skip("FIXME: issue #19")
|
||||
// Walk triggers issue #19 UNLESS optional fields removed from spec.cue
|
||||
if err := op.Walk(context.TODO(), func(op *Op) error {
|
||||
return nil
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateEmptyValue(t *testing.T) {
|
||||
cc := &Compiler{}
|
||||
v, err := cc.Compile("", "#dagger: compute: _")
|
||||
|
15
examples/tests/repro-19/main.cue
Normal file
15
examples/tests/repro-19/main.cue
Normal file
@ -0,0 +1,15 @@
|
||||
package test
|
||||
|
||||
#dagger: compute: [
|
||||
{
|
||||
do: "fetch-container"
|
||||
ref: "busybox"
|
||||
},
|
||||
{
|
||||
do: "exec"
|
||||
args: ["sh", "-c", """
|
||||
echo hello > /tmp/out
|
||||
"""]
|
||||
// dir: "/"
|
||||
},
|
||||
]
|
Reference in New Issue
Block a user