mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-26 16:02:54 -05:00
86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
const test = require('tap').test;
|
||
const StringUtil = require('../../src/util/string-util');
|
||
|
||
test('splitFirst', t => {
|
||
t.deepEqual(StringUtil.splitFirst('asdf.1234', '.'), ['asdf', '1234']);
|
||
t.deepEqual(StringUtil.splitFirst('asdf.', '.'), ['asdf', '']);
|
||
t.deepEqual(StringUtil.splitFirst('.1234', '.'), ['', '1234']);
|
||
t.deepEqual(StringUtil.splitFirst('foo', '.'), ['foo', null]);
|
||
t.end();
|
||
});
|
||
|
||
test('withoutTrailingDigits', t => {
|
||
t.strictEqual(StringUtil.withoutTrailingDigits('boeing747'), 'boeing');
|
||
t.strictEqual(StringUtil.withoutTrailingDigits('boeing747 '), 'boeing747 ');
|
||
t.strictEqual(StringUtil.withoutTrailingDigits('boeing𝟨'), 'boeing𝟨');
|
||
t.strictEqual(StringUtil.withoutTrailingDigits('boeing 747'), 'boeing ');
|
||
t.strictEqual(StringUtil.withoutTrailingDigits('747'), '');
|
||
t.end();
|
||
});
|
||
|
||
test('unusedName', t => {
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'name',
|
||
['not the same name']
|
||
),
|
||
'name'
|
||
);
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'name',
|
||
['name']
|
||
),
|
||
'name2'
|
||
);
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'name',
|
||
['name30']
|
||
),
|
||
'name'
|
||
);
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'name',
|
||
['name', 'name2']
|
||
),
|
||
'name3'
|
||
);
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'name',
|
||
['name', 'name3']
|
||
),
|
||
'name2'
|
||
);
|
||
t.strictEqual(
|
||
StringUtil.unusedName(
|
||
'boeing747',
|
||
['boeing747']
|
||
),
|
||
'boeing2' // Yup, this matches scratch-flash...
|
||
);
|
||
t.end();
|
||
});
|
||
|
||
test('stringify', t => {
|
||
const obj = {
|
||
a: Infinity,
|
||
b: NaN,
|
||
c: -Infinity,
|
||
d: 23,
|
||
e: 'str',
|
||
f: {
|
||
nested: Infinity
|
||
}
|
||
};
|
||
const parsed = JSON.parse(StringUtil.stringify(obj));
|
||
t.equal(parsed.a, 0);
|
||
t.equal(parsed.b, 0);
|
||
t.equal(parsed.c, 0);
|
||
t.equal(parsed.d, 23);
|
||
t.equal(parsed.e, 'str');
|
||
t.equal(parsed.f.nested, 0);
|
||
t.end();
|
||
});
|