mirror of
https://github.com/status-im/actions-gh-pages.git
synced 2025-01-24 20:09:01 +00:00
00fde1eb97
* feat: Add disable_nojekyll and cname options * docs: Add cname and disable_nojekyll * chore: Add vim * chore(release): 3.3.0-0 * ci: Add codecov/codecov-action * refactor: Enhance warning message - Add .nojekyll file by default to only the master and gh-pages branches. When the file already exists, this action does nothing. - When we set other branches to publish_branch, this action does not add .nojekyll file. cf. https://github.com/peaceiris/actions-gh-pages/issues/112#issuecomment-589678269 Close #112 Co-authored-by: Daniel Himmelstein <daniel.himmelstein@gmail.com> Co-authored-by: Nicolas Vanhoren <nicolas.vanhoren@gmail.com>
191 lines
4.8 KiB
TypeScript
191 lines
4.8 KiB
TypeScript
import path from 'path';
|
|
import fs from 'fs';
|
|
import {
|
|
getHomeDir,
|
|
getWorkDirName,
|
|
createWorkDir,
|
|
addNoJekyll,
|
|
addCNAME
|
|
} from '../src/utils';
|
|
|
|
beforeEach(() => {
|
|
jest.resetModules();
|
|
});
|
|
|
|
// afterEach(() => {
|
|
|
|
// });
|
|
|
|
async function getTime(): Promise<string> {
|
|
const date = new Date();
|
|
const unixTime = date.getTime();
|
|
return `${unixTime}`;
|
|
}
|
|
|
|
describe('getHomeDir()', () => {
|
|
test('get home directory name', async () => {
|
|
let test = '';
|
|
if (process.platform === 'win32') {
|
|
test = 'C:\\Users\\runneradmin';
|
|
} else {
|
|
test = `${process.env.HOME}`;
|
|
}
|
|
const expected = await getHomeDir();
|
|
expect(test).toMatch(expected);
|
|
});
|
|
});
|
|
|
|
describe('getWorkDirName()', () => {
|
|
test('get work directory name', async () => {
|
|
let home = '';
|
|
if (process.platform === 'win32') {
|
|
home = 'C:\\Users\\runneradmin';
|
|
} else {
|
|
home = `${process.env.HOME}`;
|
|
}
|
|
const unixTime = await getTime();
|
|
const expected = path.join(home, `actions_github_pages_${unixTime}`);
|
|
const test = await getWorkDirName(`${unixTime}`);
|
|
expect(test).toMatch(expected);
|
|
});
|
|
});
|
|
|
|
describe('createWorkDir()', () => {
|
|
test('create work directory', async () => {
|
|
const unixTime = await getTime();
|
|
const workDirName = await getWorkDirName(`${unixTime}`);
|
|
await createWorkDir(workDirName);
|
|
const test = fs.existsSync(workDirName);
|
|
expect(test).toBe(true);
|
|
});
|
|
});
|
|
|
|
async function getWorkDir(): Promise<string> {
|
|
const unixTime = await getTime();
|
|
let workDir = '';
|
|
workDir = await getWorkDirName(`${unixTime}`);
|
|
await createWorkDir(workDir);
|
|
return workDir;
|
|
}
|
|
|
|
describe('addNoJekyll()', () => {
|
|
test('add .nojekyll gh-pages', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, false, 'gh-pages');
|
|
const test1 = fs.existsSync(filepath);
|
|
expect(test1).toBe(true);
|
|
|
|
fs.unlinkSync(filepath);
|
|
});
|
|
|
|
test('add .nojekyll master', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, false, 'master');
|
|
const test2 = fs.existsSync(filepath);
|
|
expect(test2).toBe(true);
|
|
|
|
fs.unlinkSync(filepath);
|
|
});
|
|
|
|
test('not add .nojekyll disable_nojekyll gh-pages', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, true, 'gh-pages');
|
|
const test3 = fs.existsSync(filepath);
|
|
expect(test3).toBe(false);
|
|
});
|
|
|
|
test('not add .nojekyll disable_nojekyll master', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, true, 'master');
|
|
const test4 = fs.existsSync(filepath);
|
|
expect(test4).toBe(false);
|
|
});
|
|
|
|
test('not add .nojekyll other-branch', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, false, 'other-branch');
|
|
const test5 = fs.existsSync(filepath);
|
|
expect(test5).toBe(false);
|
|
});
|
|
|
|
test('not add .nojekyll disable_nojekyll other-branch', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, '.nojekyll');
|
|
|
|
await addNoJekyll(workDir, true, 'other-branch');
|
|
const test6 = fs.existsSync(filepath);
|
|
expect(test6).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('addCNAME()', () => {
|
|
test('add CNAME', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, 'CNAME');
|
|
|
|
await addCNAME(workDir, 'github.com');
|
|
const test1 = fs.readFileSync(filepath, 'utf8');
|
|
expect(test1).toMatch('github.com');
|
|
|
|
fs.unlinkSync(filepath);
|
|
});
|
|
|
|
test('do nothing', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, 'CNAME');
|
|
|
|
await addCNAME(workDir, '');
|
|
const test2 = fs.existsSync(filepath);
|
|
expect(test2).toBe(false);
|
|
});
|
|
|
|
test('CNAME already exists', async () => {
|
|
let workDir = '';
|
|
(async (): Promise<void> => {
|
|
workDir = await getWorkDir();
|
|
})();
|
|
const filepath = path.join(workDir, 'CNAME');
|
|
|
|
await addCNAME(workDir, 'github.io');
|
|
await addCNAME(workDir, 'github.com');
|
|
const test3 = fs.readFileSync(filepath, 'utf8');
|
|
expect(test3).toMatch('github.io');
|
|
|
|
fs.unlinkSync(filepath);
|
|
});
|
|
});
|