@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
42 lines (41 loc) • 1.42 kB
TypeScript
import { IntegrationFile, TreeItem, UpdateIntegrationRequest } from '../../modules/integration/types';
export interface ExpectedObject {
[key: string]: unknown;
}
export interface ExpectedUpdateCrowdin {
files?: ExpectedObject[];
folders?: ExpectedObject[];
}
export interface BaseMethodTestConfig {
disabled?: boolean;
setup?: () => Promise<void>;
extraChecks?: (params?: any) => Promise<void>;
}
export interface GetIntegrationFilesConfig extends Omit<BaseMethodTestConfig, 'disabled'> {
expected: TreeItem[];
}
export interface UpdateCrowdinConfig extends Partial<BaseMethodTestConfig> {
updateProgressDisabled?: boolean;
expected?: ExpectedUpdateCrowdin;
updateRequest?: IntegrationFile[];
extraChecks?: (params: {
request: IntegrationFile[];
result?: unknown;
}) => Promise<void>;
}
export interface UpdateIntegrationConfig extends BaseMethodTestConfig {
updateProgressDisabled?: boolean;
updateRequest?: UpdateIntegrationRequest;
extraChecks?: (params: {
request: UpdateIntegrationRequest;
result?: unknown;
}) => Promise<void>;
}
export interface IntegrationTestConfig {
getIntegrationFiles: GetIntegrationFilesConfig;
updateCrowdin?: UpdateCrowdinConfig;
updateIntegration?: UpdateIntegrationConfig;
appSettings?: object;
integrationCredentials?: object;
beforeAll?: () => Promise<void>;
}