diff --git a/test/unit/util/default-project.test.js b/test/unit/util/default-project.test.js new file mode 100644 index 0000000000000000000000000000000000000000..726519c4160211ffdbeff95669f147c76c31a98b --- /dev/null +++ b/test/unit/util/default-project.test.js @@ -0,0 +1,21 @@ +import defaultProjectGenerator from '../../../src/lib/default-project/index.js'; + +describe('defaultProject', () => { + // This test ensures that the assets referenced in the default project JSON + // do not get out of sync with the raw assets that are included alongside. + // see https://github.com/LLK/scratch-gui/issues/4844 + test('assets referenced by the project are included', () => { + const translatorFn = () => ''; + const defaultProject = defaultProjectGenerator(translatorFn); + const includedAssetIds = defaultProject.map(obj => obj.id); + const projectData = JSON.parse(defaultProject[0].data); + projectData.targets.forEach(target => { + target.costumes.forEach(costume => { + expect(includedAssetIds.includes(costume.assetId)).toBe(true); + }); + target.sounds.forEach(sound => { + expect(includedAssetIds.includes(sound.assetId)).toBe(true); + }); + }); + }); +});