scratch-vm/test/unit/vm_collectAssets.js

43 lines
1.4 KiB
JavaScript
Raw Normal View History

const test = require('tap').test;
const {collectAssets} = require('../../src/serialization/serialize-assets');
const RenderedTarget = require('../../src/sprites/rendered-target');
const Sprite = require('../../src/sprites/sprite');
const VirtualMachine = require('../../src/virtual-machine');
test('spec', t => {
t.type(collectAssets, 'function');
t.end();
});
test('collectAssets', t => {
const vm = new VirtualMachine();
const sprite = new Sprite(null, vm.runtime);
const target = new RenderedTarget(sprite, vm.runtime);
vm.runtime.targets = [target];
const [
soundAsset1,
soundAsset2,
costumeAsset1
] = [{assetId: 1}, {assetId: 2}, {assetId: 3}];
sprite.sounds = [{id: 1, asset: soundAsset1}, {id: 2, asset: soundAsset2}];
sprite.costumes = [{id: 1, asset: costumeAsset1}];
const assets = collectAssets(vm.runtime);
t.deepEqual(assets, [soundAsset1, soundAsset2, costumeAsset1]);
t.end();
});
test('getter', t => {
const vm = new VirtualMachine();
const sprite = new Sprite(null, vm.runtime);
const target = new RenderedTarget(sprite, vm.runtime);
vm.runtime.targets = [target];
sprite.sounds = [{id: 1, asset: {}}, {id: 2, asset: {}}];
sprite.costumes = [{id: 1, asset: {}}];
const assets = vm.assets;
t.type(assets.length, 'number');
t.equal(assets.length, 3);
t.end();
});