mirror of https://gitee.com/antv-l7/antv-l7
test: add scene test
This commit is contained in:
parent
541e00f45e
commit
b76498a868
|
@ -1,144 +0,0 @@
|
||||||
import { Container } from 'inversify';
|
|
||||||
import 'reflect-metadata';
|
|
||||||
import { TYPES } from '../../../index';
|
|
||||||
import GlobalConfigService from '../ConfigService';
|
|
||||||
import { IGlobalConfigService } from '../IConfigService';
|
|
||||||
|
|
||||||
describe('ConfigService', () => {
|
|
||||||
let container: Container;
|
|
||||||
let configService: IGlobalConfigService;
|
|
||||||
|
|
||||||
beforeAll(() => {
|
|
||||||
container = new Container();
|
|
||||||
container
|
|
||||||
.bind<IGlobalConfigService>(TYPES.IGlobalConfigService)
|
|
||||||
.to(GlobalConfigService);
|
|
||||||
configService = container.get<IGlobalConfigService>(
|
|
||||||
TYPES.IGlobalConfigService,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(() => {
|
|
||||||
container.unbind(TYPES.IGlobalConfigService);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should validate scene's options according to JSON schema", () => {
|
|
||||||
const { valid, errorText } = configService.validateSceneConfig({
|
|
||||||
id: 0,
|
|
||||||
});
|
|
||||||
expect(valid).toBeFalsy();
|
|
||||||
expect(errorText).toMatch('id should be string');
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateSceneConfig({
|
|
||||||
id: 'map',
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should validate map's `zoom` option", () => {
|
|
||||||
const { valid, errorText } = configService.validateMapConfig({
|
|
||||||
zoom: 100,
|
|
||||||
minZoom: 100,
|
|
||||||
maxZoom: -2,
|
|
||||||
});
|
|
||||||
expect(valid).toBeFalsy();
|
|
||||||
expect(errorText).toMatch('zoom should be <= 24');
|
|
||||||
expect(errorText).toMatch('minZoom should be <= 24');
|
|
||||||
expect(errorText).toMatch('maxZoom should be >= -1');
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateMapConfig({
|
|
||||||
zoom: 10,
|
|
||||||
minZoom: 1,
|
|
||||||
maxZoom: 15,
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should validate map's `pitch` option", () => {
|
|
||||||
const { valid, errorText } = configService.validateMapConfig({
|
|
||||||
pitch: '1',
|
|
||||||
});
|
|
||||||
expect(valid).toBeFalsy();
|
|
||||||
expect(errorText).toMatch('pitch should be number');
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateMapConfig({
|
|
||||||
pitch: 10,
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should validate map's `center` option", () => {
|
|
||||||
const { valid, errorText } = configService.validateMapConfig({
|
|
||||||
center: [1, 2, 3],
|
|
||||||
});
|
|
||||||
expect(valid).toBeFalsy();
|
|
||||||
expect(errorText).toMatch('center should NOT have more than 2 items');
|
|
||||||
|
|
||||||
const { valid: v2, errorText: e2 } = configService.validateMapConfig({
|
|
||||||
center: [1],
|
|
||||||
});
|
|
||||||
expect(v2).toBeFalsy();
|
|
||||||
expect(e2).toMatch('center should NOT have fewer than 2 items');
|
|
||||||
|
|
||||||
const { valid: v3, errorText: e3 } = configService.validateMapConfig({
|
|
||||||
center: 100,
|
|
||||||
});
|
|
||||||
expect(v3).toBeFalsy();
|
|
||||||
expect(e3).toMatch('center should be array');
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateMapConfig({
|
|
||||||
center: [100, 100],
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should validate layer's options according to JSON schema", () => {
|
|
||||||
configService.registerLayerConfigSchemaValidator('testLayer', {
|
|
||||||
properties: {
|
|
||||||
opacity: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 0,
|
|
||||||
maximum: 1,
|
|
||||||
},
|
|
||||||
enablePicking: {
|
|
||||||
type: 'boolean',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const { valid, errorText } = configService.validateLayerConfig(
|
|
||||||
'testLayer',
|
|
||||||
{ opacity: 'invalid' },
|
|
||||||
);
|
|
||||||
expect(valid).toBeFalsy();
|
|
||||||
expect(errorText).toMatch('opacity should be number');
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateLayerConfig('testLayer', {
|
|
||||||
opacity: 1.5,
|
|
||||||
}).valid,
|
|
||||||
).toBeFalsy();
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateLayerConfig('testLayer', {
|
|
||||||
enablePicking: 1.5,
|
|
||||||
}).valid,
|
|
||||||
).toBeFalsy();
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateLayerConfig('testLayer', {
|
|
||||||
opacity: 1.0,
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
|
|
||||||
expect(
|
|
||||||
configService.validateLayerConfig('testLayer', {
|
|
||||||
opacity: 0.0,
|
|
||||||
}).valid,
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -24,10 +24,9 @@ describe('template', () => {
|
||||||
expect(center.lng).toEqual(110.19382669582967);
|
expect(center.lng).toEqual(110.19382669582967);
|
||||||
expect(center.lat).toEqual(30.258134);
|
expect(center.lat).toEqual(30.258134);
|
||||||
expect(scene.getRotation()).toEqual(-0);
|
expect(scene.getRotation()).toEqual(-0);
|
||||||
expect(scene.getBounds()).toEqual([
|
expect(scene.getBounds()[0].map((v) => v.toFixed(5))).toEqual(
|
||||||
[88.22117044582802, 9.751305353647084],
|
[88.22117044582802, 9.751305353647084].map((v) => v.toFixed(5)),
|
||||||
[132.1664829458271, 47.2486735705956],
|
);
|
||||||
]);
|
|
||||||
scene.setZoom(5);
|
scene.setZoom(5);
|
||||||
expect(scene.getZoom()).toEqual(5);
|
expect(scene.getZoom()).toEqual(5);
|
||||||
scene.setPitch(5);
|
scene.setPitch(5);
|
||||||
|
|
Loading…
Reference in New Issue