aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
diff options
context:
space:
mode:
authorDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 20:21:29 +0000
committerDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 20:21:29 +0000
commit61cb1570a3410c85a4489b97c172e3a50715f36c (patch)
tree8fe4a5b77ea54bba80abc817ce2c9ef0e79e7e66 /sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
parent21a53d349788c99d2007cba91a923db982353b31 (diff)
parenta9ee9e0a500a4a15bd0b5dcaf041f827228ed309 (diff)
Merge branch 'researchML' into 'dev'
Research ml See merge request igrannonica/neuronstellar!6
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js141
1 files changed, 141 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js b/sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
new file mode 100644
index 00000000..00d23684
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
@@ -0,0 +1,141 @@
+const normalize = require('../')
+const t = require('tap')
+
+t.test('benign object', async t => {
+ // just clean up the ./ in the targets and remove anything weird
+ const pkg = { name: 'hello', version: 'world', bin: {
+ y: './x/y',
+ z: './y/z',
+ a: './a',
+ } }
+ const expect = { name: 'hello', version: 'world', bin: {
+ y: 'x/y',
+ z: 'y/z',
+ a: 'a',
+ } }
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})
+
+t.test('empty and non-string targets', async t => {
+ // just clean up the ./ in the targets and remove anything weird
+ const pkg = { name: 'hello', version: 'world', bin: {
+ z: './././',
+ y: '',
+ './x': 'x.js',
+ re: /asdf/,
+ foo: { bar: 'baz' },
+ false: false,
+ null: null,
+ array: [1,2,3],
+ func: function () {},
+ } }
+ const expect = { name: 'hello', version: 'world', bin: {
+ x: 'x.js',
+ } }
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})
+
+t.test('slashy object', async t => {
+ const pkg = { name: 'hello', version: 'world', bin: {
+ '/path/foo': '/etc/passwd',
+ 'bar': '/etc/passwd',
+ '/etc/glorb/baz': '/etc/passwd',
+ '/etc/passwd:/bin/usr/exec': '/etc/passwd',
+ } }
+ const expect = {
+ name: 'hello',
+ version: 'world',
+ bin: {
+ foo: 'etc/passwd',
+ bar: 'etc/passwd',
+ baz: 'etc/passwd',
+ exec: 'etc/passwd',
+ }
+ }
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})
+
+t.test('dotty object', async t => {
+ const pkg = {
+ name: 'hello',
+ version: 'world',
+ bin: {
+ 'nodots': '../../../../etc/passwd',
+ '../../../../../../dots': '../../../../etc/passwd',
+ '.././../\\./..//C:\\./': 'this is removed',
+ '.././../\\./..//C:\\/': 'super safe programming language',
+ '.././../\\./..//C:\\x\\y\\z/': 'xyz',
+ } }
+ const expect = { name: 'hello', version: 'world', bin: {
+ nodots: 'etc/passwd',
+ dots: 'etc/passwd',
+ C: 'super safe programming language',
+ z: 'xyz',
+ } }
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})
+
+t.test('weird object', async t => {
+ const pkg = { name: 'hello', version: 'world', bin: /asdf/ }
+ const expect = { name: 'hello', version: 'world' }
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})
+
+t.test('oddball keys', async t => {
+ const pkg = {
+ bin: {
+ '~': 'target',
+ '£': 'target',
+ 'ζ': 'target',
+ 'ぎ': 'target',
+ '操': 'target',
+ '🎱': 'target',
+ '💎': 'target',
+ '💸': 'target',
+ '🦉': 'target',
+ 'сheck-dom': 'target',
+ 'Ωpm': 'target',
+ 'ζλ': 'target',
+ 'мга': 'target',
+ 'пше': 'target',
+ 'тзч': 'target',
+ 'тзь': 'target',
+ 'нфкт': 'target',
+ 'ссср': 'target',
+ '君の名は': 'target',
+ '君の名は': 'target',
+ }
+ }
+
+ const expect = {
+ bin: {
+ '~': 'target',
+ '£': 'target',
+ 'ζ': 'target',
+ 'ぎ': 'target',
+ '操': 'target',
+ '🎱': 'target',
+ '💎': 'target',
+ '💸': 'target',
+ '🦉': 'target',
+ 'сheck-dom': 'target',
+ 'Ωpm': 'target',
+ 'ζλ': 'target',
+ 'мга': 'target',
+ 'пше': 'target',
+ 'тзч': 'target',
+ 'тзь': 'target',
+ 'нфкт': 'target',
+ 'ссср': 'target',
+ '君の名は': 'target',
+ },
+ }
+
+ t.strictSame(normalize(pkg), expect)
+ t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
+})