From a287c19aba53df537003734d522f7253934e3324 Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Wed, 7 Jul 2021 20:46:37 -0500 Subject: [PATCH] Write download-project tests --- package-lock.json | 8 ++++++- package.json | 1 + test/packager/download-project.test.js | 32 +++++++++++++++++++++++++ test/packager/projects/music.sb3 | Bin 0 -> 960 bytes test/packager/projects/no-music.sb3 | Bin 0 -> 1000 bytes 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 test/packager/download-project.test.js create mode 100644 test/packager/projects/music.sb3 create mode 100644 test/packager/projects/no-music.sb3 diff --git a/package-lock.json b/package-lock.json index 3b63a1e..3049081 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7887,6 +7887,12 @@ "tslib": "^2.0.3" } }, + "node-blob": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-blob/-/node-blob-0.0.2.tgz", + "integrity": "sha512-82wiGzMht96gPQDUYaZBdZEVvYD9aEhU6Bt9KLCr4rADZPRd7dQVY2Yj0ZG/1vp4DhVkL49nJT/M3CiMTAt3ag==", + "dev": true + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -9274,7 +9280,7 @@ }, "scratch-vm": { "version": "git://github.com/TurboWarp/scratch-vm.git#dbae5fe7d680c80fd59e244c86f4e55b4a41829c", - "from": "git://github.com/TurboWarp/scratch-vm.git#dbae5fe7d680c80fd59e244c86f4e55b4a41829c", + "from": "git://github.com/TurboWarp/scratch-vm.git#develop", "requires": { "@vernier/godirect": "1.5.0", "arraybuffer-loader": "^1.0.6", diff --git a/package.json b/package.json index 03555f4..969e189 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.2", "jest": "^27.0.4", + "node-blob": "0.0.2", "node-fetch": "^2.6.1", "style-loader": "^2.0.0", "svelte-loader": "^3.1.2", diff --git a/test/packager/download-project.test.js b/test/packager/download-project.test.js new file mode 100644 index 0000000..8b98b8e --- /dev/null +++ b/test/packager/download-project.test.js @@ -0,0 +1,32 @@ +import fs from 'fs'; +import path from 'path'; +import Blob from 'node-blob'; +import downloadProject from '../../src/packager/lib/download-project' + +global.Blob = Blob; + +const emptyProgressCallback = () => {}; + +const readTestProject = (name) => { + const buffer = fs.readFileSync(path.resolve(__dirname, 'projects', name)); + return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); +}; + +test('sb3', async () => { + const project = await downloadProject(await readTestProject('no-music.sb3'), emptyProgressCallback); + expect(project.type).toBe('sb3'); + expect(project.analysis.stageVariables['`jEk@4|i[#Fk?(8x)AV.-my variable']).toEqual({ + name: 'my variable', + isCloud: false + }); + expect(project.analysis.stageVariables['BHEUfE_ev.6Eib^2/3nu']).toEqual({ + name: '☁ Cloud variable', + isCloud: true + }); + expect(project.analysis.usesMusic).toBe(false); +}); + +test('sb3 with music', async () => { + const project = await downloadProject(await readTestProject('music.sb3'), emptyProgressCallback); + expect(project.analysis.usesMusic).toBe(true); +}); diff --git a/test/packager/projects/music.sb3 b/test/packager/projects/music.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..91e7ac3ed57554fe0985780a8476fc940349a80b GIT binary patch literal 960 zcmWIWW@h1HU|`^2VCH!d)F<_-Ql5!{A)J|kfd?pBP?VpQnp~onRh*yK8gx7FwgJyy z(dNSqVg<4%H#T3XjnL0%=au|*q2z@C%iJWxm0~xIRBo0|e|q12=XBm`$p`FRc26vA zp78D2ApM1}>nPup-5-;h11fGO@oZh8(e^xsXYK~CH6}u3?Dy+q^87c)XMKE^_4{GM zE%|x1zJ05fzYul#``~^0nQ6ZzwiGpHxj#H5rRe?f`C8wdvQfvEe?EV*^yReO-_Nf7 z@-d^S^2F?ACPo~qqL!bk?mibUS>4wZH6h}Stw`zWQl8!o5&QRs+}*;=JtuzN*?bSl ze(^{i9nazjw#e+(sC_RA_?>3CYg}`({&Zk=TAS>vaQ`ZezRMEx7I*}2Q?JQf)pa6n z)#+<&uecxANS{e&G&pjekNf$B`bj1(n!)ov`)sN?bG>M9+|nxs&TXlEMYA|7KG&nLfM= zmwhiTzN|2f-#9S;*28ayE-@9SW3<(0=N*q$%n;Ry!X5QP~x{b!)!= zqM561+r3&o`L}18(9Lx-Ixrlq8%B^enR8JMIRq$ZoDrdXIH>J^uz=lXi{H7khR zsqVVIo&CrWdo7F z+7l~pF3~Byv`p(JbI#&sPg##Q&d!%5@@g*6vMNilR$Tg}vHsxu$I}bursX(QJ9I57 z&OcZB&hmSevy3r!!L*d^(n@byleraU8k@GbY!ouQ`PAu>f%1(QrXuqvr?0|@LjF+jS`H%yvw^bknzcB$>8o?(M+M< zFaO76sm?L`+f{LT-rU9NMfED}O;;}^I)zuxcl!Fhf3xZhe(l}1yX<~dl$F@bR(d&8 z_kiQAQylE?cXR&e`y+R%%KTz})9%#vX$oTA*AI$?wx!(NE1l@Ny@z$OnE5TQD|zQy zU(KjJa_gRF;(dwhdbP^-0u@&mQoe8UBM$U z;ed_{r*D!~U$E5WlLZ|nC1F2BEw0~hosu)b&E&@J&c}xzWW{NR%d;6Td}WrQ{`mLD z7X}8tW|fi`|31)tqHXK(L80c+gAfUg66+80C(C}b2cRUlj&lNxlYt5C6cDQbadL{0 zp{b!sih-%IVOmOBT9T2Gk%397L29yTYKnzPqF!-XdakcGU$cV9o$9XZ+u4t-GdZ-# z)Bl3-7O$3&qX$-BxP3ipx^J4{%zWwVjA6oyK5uq9sp?c@8`&z_WSX~O%jK&xOFl*_ zPTsJv$@lbS3-{J(8JR5}njcG^+3_sWIvtdA*nP>##k1%CZ`!mjd*kjE+zsE3NW^@8 z#5_|@E`LYqL%+GKZ0_d&SnMnxEvx5D@DYFe-MgM4z?+dtgaLOx0{RRIAm=J{o#+9A d&{hb{m&625fHx}}NEZ_j_5f)&U|wcm001`OovHu; literal 0 HcmV?d00001