aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/npm-normalize-package-bin/test/object.js
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
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')
+})