test: cover Firefox GitHub release metadata
This commit is contained in:
parent
8f5438fffd
commit
a5751aaace
|
|
@ -6,7 +6,7 @@
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node scripts/build-extension.js",
|
"build": "node scripts/build-extension.js",
|
||||||
"test": "node scripts/test-hostname.js && node scripts/test-activity-tracker.js && node scripts/test-protocol.js && node scripts/test-i18n.js && node scripts/test-popup-settings.js && node scripts/test-popup-catalog-fallback.js && node scripts/test-background-i18n.js",
|
"test": "node scripts/test-hostname.js && node scripts/test-activity-tracker.js && node scripts/test-protocol.js && node scripts/test-i18n.js && node scripts/test-popup-settings.js && node scripts/test-popup-catalog-fallback.js && node scripts/test-background-i18n.js && node scripts/test-firefox-github-release.js",
|
||||||
"sign:firefox": "./scripts/sign-firefox-xpi.sh",
|
"sign:firefox": "./scripts/sign-firefox-xpi.sh",
|
||||||
"release:firefox": "./scripts/release-firefox-xpi.sh",
|
"release:firefox": "./scripts/release-firefox-xpi.sh",
|
||||||
"release:package": "./scripts/package-release.sh"
|
"release:package": "./scripts/package-release.sh"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const REPOSITORY = 'mirivlad/verstak-browser-extension';
|
||||||
|
|
||||||
|
function releaseTag(version) {
|
||||||
|
return `v${version}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function releaseAssetURL(version, assetName) {
|
||||||
|
return `https://github.com/${REPOSITORY}/releases/download/${releaseTag(version)}/${assetName}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateManifest(addonID, version, assetName) {
|
||||||
|
return {
|
||||||
|
addons: {
|
||||||
|
[addonID]: {
|
||||||
|
updates: [{
|
||||||
|
version,
|
||||||
|
update_link: releaseAssetURL(version, assetName),
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function writeUpdates(addonID, version, assetName, outputPath) {
|
||||||
|
fs.writeFileSync(outputPath, `${JSON.stringify(updateManifest(addonID, version, assetName), null, 2)}\n`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (require.main === module) {
|
||||||
|
const [, , command, addonID, version, assetName, outputPath] = process.argv;
|
||||||
|
if (command !== 'write-updates' || !addonID || !version || !assetName || !outputPath) {
|
||||||
|
console.error('usage: node scripts/firefox-github-release.js write-updates <addon-id> <version> <asset-name> <output-path>');
|
||||||
|
process.exitCode = 2;
|
||||||
|
} else {
|
||||||
|
writeUpdates(addonID, version, assetName, outputPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { REPOSITORY, releaseTag, releaseAssetURL, updateManifest, writeUpdates };
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
const assert = require('assert');
|
||||||
|
const release = require('./firefox-github-release');
|
||||||
|
|
||||||
|
const version = '2.0.2';
|
||||||
|
const asset = 'verstak-firefox-2.0.2.xpi';
|
||||||
|
|
||||||
|
assert.equal(release.releaseTag(version), 'v2.0.2');
|
||||||
|
assert.equal(
|
||||||
|
release.releaseAssetURL(version, asset),
|
||||||
|
'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
||||||
|
);
|
||||||
|
assert.deepEqual(release.updateManifest('verstak-bridge@verstak.app', version, asset), {
|
||||||
|
addons: {
|
||||||
|
'verstak-bridge@verstak.app': {
|
||||||
|
updates: [{
|
||||||
|
version: '2.0.2',
|
||||||
|
update_link: 'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('Firefox GitHub release metadata tests passed');
|
||||||
Loading…
Reference in New Issue