Files
scratch-vm/test/unit/tw_monitor_record.js

56 lines
1.3 KiB
JavaScript

const {test} = require('node:test');
const assert = require('node:assert');
const MonitorRecord = require('../../src/engine/monitor-record');
test('new and get', () => {
const record = new MonitorRecord({
id: 'a',
x: 10,
y: 20
});
assert.strictEqual(record.id, 'a');
assert.strictEqual(record.x, 10);
assert.strictEqual(record.y, 20);
assert.strictEqual(record.get('id'), 'a');
assert.strictEqual(record.get('x'), 10);
assert.strictEqual(record.get('y'), 20);
});
test('merge', () => {
const record = new MonitorRecord({
id: 'a',
x: 10,
y: 20
});
assert.strictEqual(record.merge({
x: 40,
y: null
}), true);
assert.strictEqual(record.x, 40);
assert.strictEqual(record.y, 20);
assert.strictEqual(record.merge({
x: 40,
y: undefined
}), false);
assert.strictEqual(record.x, 40);
assert.strictEqual(record.y, 20);
});
test('externalDeltaToJS', () => {
assert.deepEqual(MonitorRecord.externalDeltaToJS({
whatever: 'a'
}), {whatever: 'a'});
assert.deepEqual(MonitorRecord.externalDeltaToJS({
toJS: () => ({whatever: 'a'})
}), {whatever: 'a'});
assert.deepEqual(MonitorRecord.externalDeltaToJS(
new Map([['whatever', 'a']])
), {whatever: 'a'});
});