You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
motief/packages/@ansible/example/tests/test_pack_inspect.js

28 lines
1.1 KiB

const assert = require('assert');
const fs = require('fs');
const path = require('path');
const { runPack } = require('./_pack_helpers');
try {
const { cwd, filename } = runPack();
const tarPath = path.join(cwd, filename);
if (!fs.existsSync(tarPath)) throw new Error('tarball not found: ' + tarPath);
// inspect package/package.json within tarball using tar -xOzf
const execSync = require('child_process').execSync;
let pkgJsonStr;
try {
pkgJsonStr = execSync(`tar -xOzf ${filename} package/package.json`, { cwd, encoding: 'utf8' });
} catch (e) {
throw new Error('failed to extract package.json from tarball; ensure `tar` is available');
}
const pkg = JSON.parse(pkgJsonStr);
assert.strictEqual(pkg.name, '@ansible/example', 'tarball package.json name mismatch');
assert.ok(pkg.version, 'tarball package.json missing version');
console.log('test_pack_inspect: OK');
// cleanup: remove tarball
try { fs.unlinkSync(tarPath); } catch (e) {}
process.exit(0);
} catch (err) {
console.error('test_pack_inspect: FAILED');
console.error(err && err.message ? err.message : err);
process.exit(1);
}