mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-15 18:58:11 +00:00
112 lines
3.3 KiB
TypeScript
112 lines
3.3 KiB
TypeScript
import '../fixtures/window';
|
|
// import { Project } from '../../src/project/project';
|
|
// import { Node } from '../../src/document/node/node';
|
|
// import { Designer } from '../../src/designer/designer';
|
|
import env from '../../src/env';
|
|
import { autorun } from '@ali/lowcode-editor-core';
|
|
|
|
describe('env 测试', () => {
|
|
describe('常规 API 测试', () => {
|
|
it('setEnv / getEnv / setEnvMap / set / get', () => {
|
|
expect(env.getEnv('xxx')).toBeUndefined;
|
|
|
|
const mockFn1 = jest.fn();
|
|
const off1 = env.onEnvChange(mockFn1);
|
|
|
|
const envData = { a: 1 };
|
|
env.setEnv('xxx', envData);
|
|
expect(env.getEnv('xxx')).toEqual(envData);
|
|
expect(env.get('xxx')).toEqual(envData);
|
|
expect(mockFn1).toHaveBeenCalled();
|
|
expect(mockFn1).toHaveBeenCalledWith(env.envs, 'xxx', envData);
|
|
mockFn1.mockClear();
|
|
|
|
// 设置相同的值
|
|
env.setEnv('xxx', envData);
|
|
expect(env.getEnv('xxx')).toEqual(envData);
|
|
expect(env.get('xxx')).toEqual(envData);
|
|
expect(mockFn1).not.toHaveBeenCalled();
|
|
mockFn1.mockClear();
|
|
|
|
// 设置另一个 envName
|
|
const envData2 = { b: 1 };
|
|
env.set('yyy', envData2);
|
|
expect(env.getEnv('yyy')).toEqual(envData2);
|
|
expect(env.get('yyy')).toEqual(envData2);
|
|
expect(mockFn1).toHaveBeenCalled();
|
|
expect(mockFn1).toHaveBeenCalledWith(env.envs, 'yyy', envData2);
|
|
mockFn1.mockClear();
|
|
|
|
env.setEnvMap({
|
|
zzz: { a: 1, b: 1 },
|
|
});
|
|
expect(env.getEnv('xxx')).toBeUndefined;
|
|
expect(env.getEnv('yyy')).toBeUndefined;
|
|
expect(env.getEnv('zzz')).toEqual({ a: 1, b: 1 });
|
|
expect(mockFn1).toHaveBeenCalled();
|
|
expect(mockFn1).toHaveBeenCalledWith(env.envs);
|
|
mockFn1.mockClear();
|
|
|
|
// 解绑事件
|
|
off1();
|
|
env.setEnvMap({
|
|
zzz: { a: 1, b: 1 },
|
|
});
|
|
expect(mockFn1).not.toHaveBeenCalled();
|
|
mockFn1.mockClear();
|
|
});
|
|
|
|
it('setLocale / getLocale', () => {
|
|
expect(env.getLocale()).toBe('zh_CN');
|
|
env.setLocale('en_US');
|
|
expect(env.getLocale()).toBe('en_US');
|
|
});
|
|
|
|
it('setExpertMode / isExpertMode', () => {
|
|
expect(env.isExpertMode()).toBeFalsy;
|
|
env.setExpertMode('truthy value');
|
|
expect(env.isExpertMode()).toBeTruthy;
|
|
});
|
|
|
|
it('getSupportFeatures / setSupportFeatures / supports', () => {
|
|
expect(env.getSupportFeatures()).toEqual({});
|
|
env.setSupportFeatures({
|
|
mobile: true,
|
|
pc: true,
|
|
});
|
|
expect(env.getSupportFeatures()).toEqual({
|
|
mobile: true,
|
|
pc: true,
|
|
});
|
|
expect(env.supports('mobile')).toBeTruthy;
|
|
expect(env.supports('pc')).toBeTruthy;
|
|
expect(env.supports('iot')).toBeFalsy;
|
|
});
|
|
|
|
it('getAliSchemaVersion', () => {
|
|
expect(env.getAliSchemaVersion()).toBe('1.0.0');
|
|
});
|
|
|
|
it('envs obx 测试', async () => {
|
|
const mockFn = jest.fn();
|
|
env.clear();
|
|
|
|
autorun(() => {
|
|
mockFn(env.envs);
|
|
env.envs;
|
|
});
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 16));
|
|
|
|
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
expect(mockFn).toHaveBeenLastCalledWith({});
|
|
|
|
env.setEnv('abc', { a: 1 });
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 16));
|
|
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
expect(mockFn).toHaveBeenLastCalledWith({ abc: { a: 1 } });
|
|
});
|
|
});
|
|
});
|