Skip to content

Commit 8b50ab6

Browse files
authored
Merge pull request #603 from Rohanraj123/lfx-pre
Add test fo client package
2 parents 3950507 + f306ac4 commit 8b50ab6

File tree

2 files changed

+139
-0
lines changed

2 files changed

+139
-0
lines changed

pkg/client/metadata_test.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package client
2+
3+
import (
4+
"encoding/json"
5+
"testing"
6+
7+
"kcl-lang.io/kpm/pkg/opt"
8+
pkg "kcl-lang.io/kpm/pkg/package"
9+
)
10+
11+
// TestResolvePkgDepsMetadata verifies that dependency resolution works as expected.
12+
func TestResolvePkgDepsMetadata(t *testing.T) {
13+
// Create a real KpmClient
14+
client := &KpmClient{}
15+
16+
// Initialize KclPkg using InitOptions
17+
initOptions := &opt.InitOptions{
18+
InitPath: "testdata/sample_package",
19+
}
20+
kclPkg := pkg.NewKclPkg(initOptions)
21+
22+
// Attempt to resolve package dependencies
23+
err := client.ResolvePkgDepsMetadata(&kclPkg, true)
24+
if err != nil {
25+
t.Errorf("ResolvePkgDepsMetadata failed: %v", err)
26+
}
27+
}
28+
29+
// TestResolveDepsMetadataInJsonStr verifies that dependencies metadata is serialized correctly.
30+
func TestResolveDepsMetadataInJsonStr(t *testing.T) {
31+
client := &KpmClient{}
32+
33+
// Initialize KclPkg using InitOptions
34+
initOptions := &opt.InitOptions{
35+
InitPath: "testdata/sample_package",
36+
}
37+
kclPkg := pkg.NewKclPkg(initOptions)
38+
39+
// Get dependencies metadata in JSON
40+
jsonStr, err := client.ResolveDepsMetadataInJsonStr(&kclPkg, true)
41+
if err != nil {
42+
t.Fatalf("ResolveDepsMetadataInJsonStr failed: %v", err)
43+
}
44+
45+
// Print JSON output to inspect its structure
46+
t.Logf("JSON Output: %s", jsonStr)
47+
48+
// Try to unmarshal into a generic structure if DepMetadata is unknown
49+
var deps interface{}
50+
err = json.Unmarshal([]byte(jsonStr), &deps)
51+
if err != nil {
52+
t.Errorf("Failed to parse JSON output: %v", err)
53+
}
54+
55+
// Check if the output contains expected keys
56+
if deps == nil {
57+
t.Errorf("Expected some dependencies but got none")
58+
}
59+
}

pkg/client/package_test.go

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package client
2+
3+
import (
4+
"os"
5+
"testing"
6+
7+
"kcl-lang.io/kpm/pkg/opt"
8+
pkg "kcl-lang.io/kpm/pkg/package"
9+
)
10+
11+
// TestPackagePkg verifies that the PackagePkg function correctly creates a .tar file.
12+
func TestPackagePkg(t *testing.T) {
13+
client := &KpmClient{}
14+
15+
// Create a temporary directory for testing
16+
tempDir, err := os.MkdirTemp("", "kclpkg_test")
17+
if err != nil {
18+
t.Fatalf("Failed to create temp directory: %v", err)
19+
}
20+
defer os.RemoveAll(tempDir) // Clean up after test
21+
22+
// Initialize KclPkg with a valid path
23+
initOptions := &opt.InitOptions{
24+
InitPath: tempDir,
25+
}
26+
kclPkg := pkg.NewKclPkg(initOptions)
27+
28+
// Run the packaging function
29+
tarPath, err := client.PackagePkg(&kclPkg, false)
30+
if err != nil {
31+
t.Fatalf("PackagePkg failed: %v", err)
32+
}
33+
34+
// Check if the .tar file was created
35+
if _, err := os.Stat(tarPath); os.IsNotExist(err) {
36+
t.Errorf("Expected tar file at %s but it was not created", tarPath)
37+
} else {
38+
t.Logf("Tar file created successfully at %s", tarPath)
39+
}
40+
}
41+
42+
// TestPackage verifies that the Package function correctly archives the package.
43+
func TestPackage(t *testing.T) {
44+
client := &KpmClient{}
45+
46+
// Create a temporary directory for testing
47+
tempDir, err := os.MkdirTemp("", "kclpkg_test")
48+
if err != nil {
49+
t.Fatalf("Failed to create temp directory: %v", err)
50+
}
51+
defer os.RemoveAll(tempDir) // Clean up after test
52+
53+
// Initialize KclPkg
54+
initOptions := &opt.InitOptions{
55+
InitPath: tempDir,
56+
}
57+
kclPkg := pkg.NewKclPkg(initOptions)
58+
59+
// Determine tar path
60+
tarPath := kclPkg.DefaultTarPath()
61+
62+
// Ensure any existing tar file is removed before testing
63+
_ = os.Remove(tarPath)
64+
65+
// Run the package function
66+
err = client.Package(&kclPkg, tarPath, false)
67+
if err != nil {
68+
t.Fatalf("Package failed: %v", err)
69+
}
70+
71+
// Verify the tar file was created
72+
if _, err := os.Stat(tarPath); os.IsNotExist(err) {
73+
t.Errorf("Expected tar file at %s but it was not created", tarPath)
74+
} else {
75+
t.Logf("Tar file created successfully at %s", tarPath)
76+
}
77+
78+
// Clean up after test
79+
_ = os.Remove(tarPath)
80+
}

0 commit comments

Comments
 (0)