08ea5fbe98
添加用户管理视图、API和状态管理文件
105 lines
2.3 KiB
TypeScript
105 lines
2.3 KiB
TypeScript
import { ENVIRONMENTS } from '../constants';
|
|
|
|
export interface TestEnvironment {
|
|
name: string;
|
|
baseURL: string;
|
|
mockEnabled: boolean;
|
|
mockMode: 'full' | 'partial' | 'none';
|
|
timeout: {
|
|
default: number;
|
|
navigation: number;
|
|
element: number;
|
|
network: number;
|
|
};
|
|
}
|
|
|
|
class TestConfig {
|
|
private static instance: TestConfig;
|
|
private currentEnvironment: string;
|
|
private environments: Record<string, TestEnvironment>;
|
|
|
|
private constructor() {
|
|
this.currentEnvironment = process.env.E2E_ENV || 'local';
|
|
|
|
this.environments = {
|
|
local: {
|
|
...ENVIRONMENTS.LOCAL,
|
|
timeout: {
|
|
default: 30000,
|
|
navigation: 30000,
|
|
element: 10000,
|
|
network: 30000
|
|
}
|
|
},
|
|
dev: {
|
|
...ENVIRONMENTS.DEV,
|
|
timeout: {
|
|
default: 30000,
|
|
navigation: 30000,
|
|
element: 10000,
|
|
network: 30000
|
|
}
|
|
},
|
|
test: {
|
|
...ENVIRONMENTS.TEST,
|
|
timeout: {
|
|
default: 30000,
|
|
navigation: 30000,
|
|
element: 10000,
|
|
network: 30000
|
|
}
|
|
},
|
|
prod: {
|
|
...ENVIRONMENTS.PROD,
|
|
timeout: {
|
|
default: 30000,
|
|
navigation: 30000,
|
|
element: 10000,
|
|
network: 30000
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
static getInstance(): TestConfig {
|
|
if (!TestConfig.instance) {
|
|
TestConfig.instance = new TestConfig();
|
|
}
|
|
return TestConfig.instance;
|
|
}
|
|
|
|
getEnvironment(): TestEnvironment {
|
|
return this.environments[this.currentEnvironment];
|
|
}
|
|
|
|
getBaseURL(): string {
|
|
return this.environments[this.currentEnvironment].baseURL;
|
|
}
|
|
|
|
isMockEnabled(): boolean {
|
|
return this.environments[this.currentEnvironment].mockEnabled;
|
|
}
|
|
|
|
getMockMode(): string {
|
|
return this.environments[this.currentEnvironment].mockMode;
|
|
}
|
|
|
|
getCurrentEnvironmentName(): string {
|
|
return this.currentEnvironment;
|
|
}
|
|
|
|
setEnvironment(envName: string): void {
|
|
if (this.environments[envName]) {
|
|
this.currentEnvironment = envName;
|
|
} else {
|
|
throw new Error(`Unknown environment: ${envName}`);
|
|
}
|
|
}
|
|
|
|
getTimeout(): TestEnvironment['timeout'] {
|
|
return this.environments[this.currentEnvironment].timeout;
|
|
}
|
|
}
|
|
|
|
export const testConfig = TestConfig.getInstance();
|