mirror of
https://github.com/appium/appium.git
synced 2026-10-20 23:57:22 +08:00
64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import path from 'node:path';
|
|
import {describe, it} from 'node:test';
|
|
|
|
import {node} from '../../lib';
|
|
|
|
describe('node utilities', function () {
|
|
describe('getObjectSize', function () {
|
|
it('should be able to calculate size of different object types', function () {
|
|
assert.strictEqual(node.getObjectSize(1), 8);
|
|
assert.strictEqual(node.getObjectSize(true), 4);
|
|
assert.strictEqual(node.getObjectSize('yolo'), 8);
|
|
assert.strictEqual(node.getObjectSize(null), 0);
|
|
assert.strictEqual(node.getObjectSize({}), 0);
|
|
assert.strictEqual(node.getObjectSize(Buffer.from([1, 2, 3])), 3);
|
|
assert.strictEqual(
|
|
node.getObjectSize({
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
d: 4,
|
|
},
|
|
}),
|
|
32,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('getModuleRootSync', function () {
|
|
it("should be able to find current module's root", function () {
|
|
assert.ok(path.resolve(__dirname).includes(node.getModuleRootSync('@appium/support', __filename)!));
|
|
});
|
|
|
|
it('should return null if no root is found', function () {
|
|
assert.strictEqual(node.getModuleRootSync('yolo', __filename), null);
|
|
});
|
|
});
|
|
|
|
describe('getObjectId', function () {
|
|
it('should be able to calculate object identifiers', function () {
|
|
const obj1 = {};
|
|
const obj2 = {};
|
|
assert.notStrictEqual(node.getObjectId({}), node.getObjectId(obj1));
|
|
assert.notStrictEqual(node.getObjectId({}), node.getObjectId(obj2));
|
|
assert.notStrictEqual(node.getObjectId(obj1), node.getObjectId(obj2));
|
|
assert.strictEqual(node.getObjectId(obj1), node.getObjectId(obj1));
|
|
assert.strictEqual(node.getObjectId(obj2), node.getObjectId(obj2));
|
|
});
|
|
});
|
|
|
|
describe('deepFreeze', function () {
|
|
it('should be able to deep freeze objects', function () {
|
|
const obj1 = {};
|
|
assert.deepStrictEqual(node.deepFreeze(obj1), obj1);
|
|
const obj2 = node.deepFreeze({a: {b: 'c'}});
|
|
assert.throws(() => ((obj2 as any).a.b = 'd'));
|
|
assert.strictEqual(node.deepFreeze(1), 1);
|
|
assert.strictEqual(node.deepFreeze(null), null);
|
|
const obj3 = [1, {}, 3];
|
|
assert.strictEqual(node.deepFreeze(obj3), obj3);
|
|
});
|
|
});
|
|
});
|