kcl-lang.io/kpm@v0.8.7-0.20240520061008-9fc4c5efc8c7/pkg/opt/opt_test.go (about) 1 // Copyright 2023 The KCL Authors. All rights reserved. 2 3 package opt 4 5 import ( 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "kcl-lang.io/kcl-go/pkg/kcl" 10 "kcl-lang.io/kpm/pkg/errors" 11 ) 12 13 func TestWorkDirAsPkgPath(t *testing.T) { 14 opts := DefaultCompileOptions() 15 assert.Equal(t, opts.PkgPath(), "") 16 opts.Merge(kcl.WithWorkDir("test_work_dir")) 17 assert.Equal(t, opts.PkgPath(), "test_work_dir") 18 opts.ExtendEntries([]string{"file1.k", "file2.k"}) 19 opts.ExtendEntries([]string{"file3.k", "file4.k"}) 20 assert.Equal(t, opts.Entries(), []string{"file1.k", "file2.k", "file3.k", "file4.k"}) 21 opts.SetEntries([]string{"override.k"}) 22 assert.Equal(t, opts.Entries(), []string{"override.k"}) 23 } 24 25 func TestInitOptions(t *testing.T) { 26 o1 := InitOptions{Name: "foo", InitPath: "bar", Version: "v0.0.1"} 27 o2 := InitOptions{Name: "foo", InitPath: "bar", Version: "v0.0.2"} 28 o3 := InitOptions{Name: "foo", InitPath: "bar", Version: "abc.0.3"} 29 assert.Equal(t, o1.Validate(), nil) 30 assert.Equal(t, o2.Validate(), nil) 31 assert.Equal(t, o3.Validate(), errors.InvalidVersionFormat) 32 }