packages/vscode-mediator-commands/test-utils/index.ts (62 lines of code) (raw):
import {
gitlab,
DeprecatedGitLabClient as GitLabClient,
DefaultGitLabClient,
DefaultAuthProvider,
} from '@gitlab/gitlab-api-client';
import { createPrivateTokenHeadersProvider } from '@gitlab/gitlab-api-client-factory';
import { createConfig } from '@gitlab/utils-test';
import { WebIdeExtensionConfig } from '@gitlab/web-ide-types';
export const TEST_DEFAULT_BRANCH = 'test-default-branch';
export const TEST_CONFIG: WebIdeExtensionConfig = {
...createConfig(),
repoRoot: '/repo/root/lorem/ipsum',
};
export const TEST_COMMIT_PAYLOAD: gitlab.CommitPayload = {
actions: [],
branch: 'main-patch-123',
commit_message: 'Test! Hello!',
};
export const TEST_COMMIT_ID = '000000111111';
export const createTestClient = () => {
const token = TEST_CONFIG.auth?.type === 'token' ? TEST_CONFIG.auth.token : '';
const defaultClient = new DefaultGitLabClient({
baseUrl: TEST_CONFIG.gitlabUrl,
auth: createPrivateTokenHeadersProvider(new DefaultAuthProvider(token)),
});
return new GitLabClient(defaultClient);
};
export const createTestProject = (projectPath: string): gitlab.Project => ({
id: 7,
name: 'My Project',
path_with_namespace: projectPath,
web_url: `https://example.com/${projectPath}`,
default_branch: TEST_DEFAULT_BRANCH,
can_create_merge_request_in: true,
empty_repo: false,
});
export const createTestBranch = (projectPath: string, ref: string): gitlab.Branch => ({
name: ref,
web_url: `https://example.com/${projectPath}/${ref}`,
can_push: true,
protected: false,
default: false,
commit: {
created_at: '',
id: TEST_COMMIT_ID,
message: 'Hello! Test!',
short_id: '000000',
title: 'Hello! Test!',
web_url: `https://example.com/${projectPath}/commits/000000`,
},
});
export const createRepositoryTreeItem = (
path: string,
type: 'blob' | 'tree',
): gitlab.RepositoryTreeItem => ({
name: path,
id: path,
path,
type,
mode: '100644',
});