aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cli/internal/lockfile/yarn_lockfile_test.go
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
commitdd84b9d64fb98746a230cd24233ff50a562c39c9 (patch)
treeb583261ef00b3afe72ec4d6dacb31e57779a6faf /cli/internal/lockfile/yarn_lockfile_test.go
parent0b46fcd72ac34382387b2bcf9095233efbcc52f4 (diff)
downloadHydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.tar.gz
HydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.zip
Diffstat (limited to 'cli/internal/lockfile/yarn_lockfile_test.go')
-rw-r--r--cli/internal/lockfile/yarn_lockfile_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/cli/internal/lockfile/yarn_lockfile_test.go b/cli/internal/lockfile/yarn_lockfile_test.go
new file mode 100644
index 0000000..ef4fcb0
--- /dev/null
+++ b/cli/internal/lockfile/yarn_lockfile_test.go
@@ -0,0 +1,51 @@
+package lockfile
+
+import (
+ "bytes"
+ "testing"
+
+ "gotest.tools/v3/assert"
+)
+
+func TestRoundtrip(t *testing.T) {
+ content, err := getFixture(t, "yarn.lock")
+ if err != nil {
+ t.Error(err)
+ }
+
+ lockfile, err := DecodeYarnLockfile(content)
+ if err != nil {
+ t.Error(err)
+ }
+
+ var b bytes.Buffer
+ if err := lockfile.Encode(&b); err != nil {
+ t.Error(err)
+ }
+
+ assert.DeepEqual(t, string(content), b.String())
+}
+
+func TestKeySplitting(t *testing.T) {
+ content, err := getFixture(t, "yarn.lock")
+ if err != nil {
+ t.Error(err)
+ }
+
+ lockfile, err := DecodeYarnLockfile(content)
+ if err != nil {
+ t.Error(err)
+ }
+
+ // @babel/types has multiple entries, these should all appear in the lockfile struct
+ keys := []string{
+ "@babel/types@^7.18.10",
+ "@babel/types@^7.18.6",
+ "@babel/types@^7.19.0",
+ }
+
+ for _, key := range keys {
+ _, ok := lockfile.inner[key]
+ assert.Assert(t, ok, "Unable to find entry for %s in parsed lockfile", key)
+ }
+}