mirror of
https://github.com/scratchfoundation/scratch-parser.git
synced 2025-07-22 12:09:55 -04:00
test(tests): add tests for sb3 projects with comments
This commit is contained in:
parent
1f8a651ac8
commit
97f6ef5bed
4 changed files with 54 additions and 3 deletions
test
13
test/fixtures/data.js
vendored
13
test/fixtures/data.js
vendored
|
@ -5,6 +5,7 @@ var path = require('path');
|
|||
// Build file listings
|
||||
var sb = glob.sync(path.resolve(__dirname, './data/*.sb'));
|
||||
var sb2 = glob.sync(path.resolve(__dirname, './data/*.sb2'));
|
||||
var sb3 = glob.sync(path.resolve(__dirname, './data/*.sb3'));
|
||||
var sprite2 = glob.sync(path.resolve(__dirname, './data/*.sprite2'));
|
||||
// Sprite2 and Sprite3 jsons have modified file extensions
|
||||
// so that they don't get caught here but can still be used by the
|
||||
|
@ -15,9 +16,10 @@ var gzipJson = glob.sync(path.resolve(__dirname, './data/*.json.gz'));
|
|||
// Read files and convert to buffers
|
||||
for (var a in sb) sb[a] = fs.readFileSync(sb[a]);
|
||||
for (var b in sb2) sb2[b] = fs.readFileSync(sb2[b]);
|
||||
for (var c in json) json[c] = fs.readFileSync(json[c]);
|
||||
for (var d in gzipJson) gzipJson[d] = fs.readFileSync(gzipJson[d]);
|
||||
for (var e in sprite2) sprite2[e] = fs.readFileSync(sprite2[e]);
|
||||
for (var c in sb3) sb3[c] = fs.readFileSync(sb3[c]);
|
||||
for (var d in json) json[d] = fs.readFileSync(json[d]);
|
||||
for (var e in gzipJson) gzipJson[e] = fs.readFileSync(gzipJson[e]);
|
||||
for (var f in sprite2) sprite2[f] = fs.readFileSync(sprite2[f]);
|
||||
|
||||
// Return listings
|
||||
module.exports = {
|
||||
|
@ -40,8 +42,13 @@ module.exports = {
|
|||
example_sprite2_json: fs.readFileSync(path.resolve(__dirname, './data/_example_sprite.sprite2json')),
|
||||
bananas_sprite2: fs.readFileSync(path.resolve(__dirname, './data/_bananas.sprite2'))
|
||||
},
|
||||
sb3_comments: {
|
||||
comments: fs.readFileSync(path.resolve(__dirname, './data/_comments.sb3')),
|
||||
invalid_comments: fs.readFileSync(path.resolve(__dirname, './data/_invalid_comments.sb3'))
|
||||
},
|
||||
sb: sb,
|
||||
sb2: sb2,
|
||||
sb3: sb3,
|
||||
json: json,
|
||||
gzipJson: gzipJson,
|
||||
sprite2: sprite2
|
||||
|
|
BIN
test/fixtures/data/_comments.sb3
vendored
Normal file
BIN
test/fixtures/data/_comments.sb3
vendored
Normal file
Binary file not shown.
BIN
test/fixtures/data/_invalid_comments.sb3
vendored
Normal file
BIN
test/fixtures/data/_invalid_comments.sb3
vendored
Normal file
Binary file not shown.
44
test/integration/comments_sb3.js
Normal file
44
test/integration/comments_sb3.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
var test = require('tap').test;
|
||||
var JSZip = require('jszip');
|
||||
var data = require('../fixtures/data');
|
||||
var parser = require('../../index');
|
||||
|
||||
test('comments sb3', function (t) {
|
||||
parser(data.sb3_comments.comments, false, function (err, result) {
|
||||
t.equal(err, null);
|
||||
t.equal(Array.isArray(result), true);
|
||||
var res = result[0];
|
||||
var possibleZip = result[1];
|
||||
t.type(res, 'object');
|
||||
t.equal(res.projectVersion, 3);
|
||||
t.equal(possibleZip instanceof JSZip, true);
|
||||
|
||||
t.type(res.targets[0].comments, 'object');
|
||||
t.equal(Object.values(res.targets[0].comments).length, 1);
|
||||
|
||||
t.type(res.targets[1].comments, 'object');
|
||||
t.equal(Object.values(res.targets[1].comments).length, 6);
|
||||
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('invalid comments sb3', function (t) {
|
||||
parser(data.sb3_comments.invalid_comments, false, function (err, result) {
|
||||
t.type(err, 'object');
|
||||
t.type(err.validationError, 'string');
|
||||
|
||||
var sb3Errors = err.sb3Errors;
|
||||
t.type(sb3Errors, 'object');
|
||||
t.type(sb3Errors[0].keyword, 'string');
|
||||
t.type(sb3Errors[0].dataPath, 'string');
|
||||
t.match(sb3Errors[0].dataPath, /^\.targets\[1\]\.comments\[.*\]\.width$/);
|
||||
t.type(sb3Errors[0].schemaPath, 'string');
|
||||
t.type(sb3Errors[0].message, 'string');
|
||||
t.equal(sb3Errors[0].message, 'should be number');
|
||||
t.type(sb3Errors[0].params, 'object');
|
||||
t.type(result, 'undefined');
|
||||
|
||||
t.end();
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue