Initial curated chimera source from a8ae5b1db07fb49926c94585e2718e5130330974
This commit is contained in:
commit
c737a37f71
531 files changed
+119270
No files matched your search
@@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('assert');
|
||||
const fs = require('fs');
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
const { buildY2jbUpdate } = require('../src/y2jb-generator');
|
||||
|
||||
(async () => {
|
||||
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'porkfolio-y2jb-test-'));
|
||||
const templateDir = path.join(tempRoot, 'template');
|
||||
const workspaceDir = path.join(tempRoot, 'workspace');
|
||||
const outputZip = path.join(tempRoot, 'y2jb_update.zip');
|
||||
fs.mkdirSync(path.join(templateDir, 'ps5_autoloader'), { recursive: true });
|
||||
fs.writeFileSync(path.join(templateDir, 'main.js'), 'console.log("template");\n');
|
||||
fs.writeFileSync(path.join(templateDir, 'update.js'), 'console.log("update");\n');
|
||||
fs.writeFileSync(path.join(templateDir, 'icon0.png'), Buffer.from([0x89, 0x50, 0x4e, 0x47]));
|
||||
fs.writeFileSync(path.join(templateDir, 'ps5_autoloader', 'autoload.txt'), '# template\n');
|
||||
|
||||
const result = await buildY2jbUpdate({
|
||||
templateDir,
|
||||
workspaceDir,
|
||||
outputZip,
|
||||
entries: [
|
||||
{ type: 'message', value: 'Starting test queue' },
|
||||
{ type: 'delay', value: '750' },
|
||||
{ type: 'payload', value: 'test-payload.elf' },
|
||||
],
|
||||
payloadFiles: [{ name: 'test-payload.elf', data: Buffer.from('test payload') }],
|
||||
});
|
||||
|
||||
assert(fs.existsSync(outputZip), 'expected output ZIP');
|
||||
assert.strictEqual(result.entryCount > 0, true, 'expected ZIP entries');
|
||||
assert.deepStrictEqual(result.entries, [
|
||||
'icon0.png',
|
||||
'main.js',
|
||||
'ps5_autoloader/',
|
||||
'ps5_autoloader/autoload.txt',
|
||||
'ps5_autoloader/test-payload.elf',
|
||||
'update-info.txt',
|
||||
'update.js',
|
||||
]);
|
||||
const archive = fs.readFileSync(outputZip);
|
||||
assert(archive.includes(Buffer.from('ps5_autoloader/autoload.txt')), 'missing autoload manifest');
|
||||
assert(!archive.includes(Buffer.from('ps5_autoloader\\autoload.txt')), 'ZIP must use forward slashes');
|
||||
|
||||
const manifest = result.updateInfo;
|
||||
assert(manifest.includes('ps5_autoloader/test-payload.elf|12'));
|
||||
assert.strictEqual(fs.readFileSync(path.join(workspaceDir, 'ps5_autoloader', 'autoload.txt'), 'utf8').includes('!750'), true);
|
||||
console.log('y2jb generator test passed');
|
||||
})().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
Reference in new issue
Block a user