import { HugoInstaller } from '../src/hugo' import { OctokitReleaseLookup } from '../src/asset-lookup' import * as fs from 'node:fs' import path from 'path' import * as os from 'node:os' import { Platform } from '../src/os' let tmpDir = '' beforeEach(() => { jest.resetModules() tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'setup-hugo-')) }) afterEach(() => { fs.rmSync(tmpDir, { recursive: true }) }) describe('Install Hugo', () => { test('Download latest Hugo', async () => { const releaseLookup = new OctokitReleaseLookup( process.env.GITHUB_TOKEN || undefined ) const platformMock = new Platform('linux', undefined, { HOME: tmpDir }) const hugo = new HugoInstaller(releaseLookup, platformMock) expect( async () => await hugo.install({ version: 'latest' }) ).not.toThrow() }, 30_000) test('Download latest Hugo - extended', async () => { const releaseLookup = new OctokitReleaseLookup( process.env.GITHUB_TOKEN || undefined ) const platformMock = new Platform('linux', undefined, { HOME: tmpDir }) const hugo = new HugoInstaller(releaseLookup, platformMock) expect( async () => await hugo.install({ version: 'latest', extended: true }) ).not.toThrow() }, 30_000) test('Download latest Hugo - with deploy', async () => { const releaseLookup = new OctokitReleaseLookup( process.env.GITHUB_TOKEN || undefined ) const platformMock = new Platform('linux', undefined, { HOME: tmpDir }) const hugo = new HugoInstaller(releaseLookup, platformMock) expect( async () => await hugo.install({ version: 'latest', withDeploy: true }) ).not.toThrow() }, 30_000) })