Includes scratch-gui, scratch-vm, scratch-blocks, scratch-render, scratch-l10n, and deployment config. Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
903 B
JavaScript
27 lines
903 B
JavaScript
const test = require('tap').test;
|
|
|
|
const mutationAdapter = require('../../src/engine/mutation-adapter');
|
|
|
|
test('spec', t => {
|
|
t.type(mutationAdapter, 'function');
|
|
t.end();
|
|
});
|
|
|
|
test('convert DOM to Scratch object', t => {
|
|
const testStringRaw = '"arbitrary" & \'complicated\' test string';
|
|
const testStringEscaped = '\\"arbitrary\\" & 'complicated' test string';
|
|
const xml = `<mutation blockInfo="{"text":"${testStringEscaped}"}"></mutation>`;
|
|
const expectedMutation = {
|
|
tagName: 'mutation',
|
|
children: [],
|
|
blockInfo: {
|
|
text: testStringRaw
|
|
}
|
|
};
|
|
|
|
// TODO: do we want to test passing a DOM node to `mutationAdapter`? Node.js doesn't have built-in DOM support...
|
|
const mutationFromString = mutationAdapter(xml);
|
|
t.deepEqual(mutationFromString, expectedMutation);
|
|
t.end();
|
|
});
|