feat: add github release body to getVersion query
This commit is contained in:
parent
64aef3d127
commit
4b46b44df0
2 changed files with 11 additions and 5 deletions
|
@ -66,10 +66,11 @@ describe('Test: getVersion', () => {
|
|||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('It should return version', async () => {
|
||||
it('It should return version with body', async () => {
|
||||
// Arrange
|
||||
const body = faker.random.words(10);
|
||||
// @ts-expect-error Mocking fetch
|
||||
fetch.mockImplementationOnce(() => Promise.resolve({ json: () => Promise.resolve({ name: `v${faker.random.numeric(1)}.${faker.random.numeric(1)}.${faker.random.numeric()}` }) }));
|
||||
fetch.mockImplementationOnce(() => Promise.resolve({ json: () => Promise.resolve({ name: `v${faker.random.numeric(1)}.${faker.random.numeric(1)}.${faker.random.numeric()}`, body }) }));
|
||||
|
||||
// Act
|
||||
const version = await SystemService.getVersion();
|
||||
|
@ -78,6 +79,7 @@ describe('Test: getVersion', () => {
|
|||
expect(version).toBeDefined();
|
||||
expect(version.current).toBeDefined();
|
||||
expect(semver.valid(version.latest)).toBeTruthy();
|
||||
expect(version.body).toBeDefined();
|
||||
});
|
||||
|
||||
it('Should return undefined for latest if request fails', async () => {
|
||||
|
|
|
@ -41,19 +41,23 @@ export class SystemServiceClass {
|
|||
*
|
||||
* @returns {Promise<{ current: string; latest: string }>} The current and latest version
|
||||
*/
|
||||
public getVersion = async (): Promise<{ current: string; latest?: string }> => {
|
||||
public getVersion = async () => {
|
||||
try {
|
||||
let version = await this.cache.get('latestVersion');
|
||||
let body = await this.cache.get('latestVersionBody');
|
||||
|
||||
if (!version) {
|
||||
const data = await fetch('https://api.github.com/repos/meienberger/runtipi/releases/latest');
|
||||
const release = (await data.json()) as { name: string };
|
||||
const release = (await data.json()) as { name: string; body: string };
|
||||
|
||||
version = release.name.replace('v', '');
|
||||
body = release.body;
|
||||
|
||||
await this.cache.set('latestVersion', version?.replace('v', '') || '', 60 * 60);
|
||||
await this.cache.set('latestVersionBody', body || '', 60 * 60);
|
||||
}
|
||||
|
||||
return { current: TipiConfig.getConfig().version, latest: version?.replace('v', '') };
|
||||
return { current: TipiConfig.getConfig().version, latest: version?.replace('v', ''), body };
|
||||
} catch (e) {
|
||||
Logger.error(e);
|
||||
return { current: TipiConfig.getConfig().version, latest: undefined };
|
||||
|
|
Loading…
Add table
Reference in a new issue