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  }