45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import {
|
|
getGitHubMeta,
|
|
getGitHubPublicFork,
|
|
} from '@/platforms/github';
|
|
import { TEMPLATE_REPO_OWNER, TEMPLATE_REPO_NAME } from '@/app-core/config';
|
|
|
|
describe('GitHub', () => {
|
|
it('fetches base repo meta', async () => {
|
|
const meta = await getGitHubMeta({
|
|
owner: TEMPLATE_REPO_OWNER,
|
|
repo: TEMPLATE_REPO_NAME,
|
|
});
|
|
expect(meta).toBeDefined();
|
|
expect(meta.urlRepo).toBeDefined();
|
|
expect(meta.isForkedFromBase).toEqual(false);
|
|
expect(meta.isBehind).toEqual(false);
|
|
expect(meta.isBaseRepo).toBe(true);
|
|
});
|
|
it('fetches fork meta', async () => {
|
|
const fork = await getGitHubPublicFork();
|
|
const metaFork = await getGitHubMeta(fork);
|
|
expect(metaFork.isForkedFromBase).toEqual(true);
|
|
});
|
|
it('handles nonexistent repos', async () => {
|
|
const meta = await getGitHubMeta({
|
|
owner: 'nonexistent',
|
|
repo: 'nonexistent',
|
|
});
|
|
expect(meta).toBeDefined();
|
|
expect(meta.urlRepo).toBeDefined();
|
|
expect(meta.isForkedFromBase).toEqual(false);
|
|
expect(meta.isBehind).toBeUndefined();
|
|
});
|
|
it('handles fetch errors', async () => {
|
|
const meta = await getGitHubMeta({
|
|
owner: 'gibberish / / *',
|
|
repo: 'bad text for a url.com',
|
|
});
|
|
expect(meta).toBeDefined();
|
|
expect(meta.urlRepo).toBeDefined();
|
|
expect(meta.isForkedFromBase).toEqual(false);
|
|
expect(meta.isBehind).toBeUndefined();
|
|
});
|
|
});
|