aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cli/internal/lockfile/yarn_lockfile_test.go
diff options
context:
space:
mode:
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)
+ }
+}