Add tests and detect WhatsApp Web updates (#686)

* test setup, add initializer tests

* test sending messages

* add script to check latest version

* add github action

* use env vars

* configure environment with .env file

* add test for sticker name and author

* add DownloadManager model

* test chats and contacts

* test for number utility functions

* throw error if no remote id has been set

* Update .version
This commit is contained in:
Pedro S. Lopez
2021-07-16 02:50:05 -04:00
committed by GitHub
parent 04d2308bbc
commit a03cc41d22
10 changed files with 574 additions and 6 deletions

View File

@@ -0,0 +1,55 @@
#!/usr/bin/env node
const fs = require('fs');
const puppeteer = require('puppeteer');
const { DefaultOptions } = require('../../src/util/Constants');
const getLatestVersion = async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setUserAgent(DefaultOptions.userAgent);
await page.goto('https://web.whatsapp.com/', { waitUntil: 'load'});
await page.waitForSelector('.landing-header');
const version = await page.evaluate(() => window.Debug.VERSION);
await browser.close();
return version;
};
const getCurrentVersion = () => {
try {
const versionFile = fs.readFileSync('./.version');
return versionFile ? versionFile.toString() : null;
} catch(_) {
return null;
}
};
const updateVersion = async (oldVersion, newVersion) => {
const readmePath = '../../README.md';
const readme = fs.readFileSync(readmePath);
const newReadme = readme.toString().replaceAll(oldVersion, newVersion);
fs.writeFileSync(readmePath, newReadme);
fs.writeFileSync('./.version', newVersion);
};
(async () => {
const currentVersion = getCurrentVersion();
const version = await getLatestVersion();
console.log(`Current version: ${currentVersion}`);
console.log(`Latest version: ${version}`);
if(currentVersion !== version) {
console.log('Updating files...');
await updateVersion(currentVersion, version);
console.log('Updated!');
} else {
console.log('No changes.');
}
})();