From eb74d6c033ef44fce7e5e340d665d4ab1d3b2635 Mon Sep 17 00:00:00 2001
From: Paul Kaplan <pkaplan@media.mit.edu>
Date: Thu, 23 May 2019 11:22:36 -0400
Subject: [PATCH] Include a unit test to ensure default project assets are
 included

---
 test/unit/util/default-project.test.js | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 test/unit/util/default-project.test.js

diff --git a/test/unit/util/default-project.test.js b/test/unit/util/default-project.test.js
new file mode 100644
index 000000000..726519c41
--- /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);
+            });
+        });
+    });
+});
-- 
GitLab