test: add aggregations and mapping test

This commit is contained in:
wulkanat@gmail.com
2020-09-09 18:01:25 +02:00
parent e5511d0738
commit 24ea449dd4
38 changed files with 1945 additions and 3 deletions

View File

@@ -0,0 +1,38 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggArray {
/**
* @aggregatable
*/
array: Foo[];
type: ThingType.AggArray;
}
type Foo = 'A' | 'B' | 'C';
export const aggArrayTest: MapAggTestOptions = {
name: ThingType.AggArray,
agg: {
fields: ['array'],
},
};

View File

@@ -0,0 +1,39 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggGlobalNested {
nested: {
/**
* @aggregatable global
*/
foo: string;
};
type: ThingType.AggGlobalNested;
}
export const aggGlobalNestedTest: MapAggTestOptions = {
name: ThingType.AggGlobalNested,
agg: {
globals: ['foo'],
},
};

View File

@@ -0,0 +1,37 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggGlobal {
/**
* @aggregatable global
*/
foo: string;
type: ThingType.AggGlobal;
}
export const aggGlobalTest: MapAggTestOptions = {
name: ThingType.AggGlobal,
agg: {
globals: ['foo'],
},
};

View File

@@ -0,0 +1,40 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggInheritedGlobal extends Foo {
type: ThingType.AggInheritedGlobal;
}
interface Foo {
/**
* @aggregatable global
*/
bar: string;
}
export const aggInheritedGlobalTest: MapAggTestOptions = {
name: ThingType.AggInheritedGlobal,
agg: {
globals: ['bar'],
},
};

View File

@@ -0,0 +1,45 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggInherited extends Foo {
/**
* No tag here :)
*/
bar: 'some thing';
type: ThingType.AggInheritedOverwritten;
}
interface Foo {
/**
* @aggregatable
*/
bar: string;
}
export const aggInheritedOverwrittenTest: MapAggTestOptions = {
name: ThingType.AggInherited,
agg: {
fields: ['bar'],
},
};

View File

@@ -0,0 +1,40 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggInherited extends Foo {
type: ThingType.AggInherited;
}
interface Foo {
/**
* @aggregatable
*/
bar: string;
}
export const aggInheritedTest: MapAggTestOptions = {
name: ThingType.AggInherited,
agg: {
fields: ['bar'],
},
};

View File

@@ -0,0 +1,39 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {ThingType} from './types';
import {MapAggTestOptions} from '../../MapAggTestOptions';
/**
* @indexable
*/
export interface AggNested {
nested: {
/**
* @aggregatable
*/
foo: string;
};
type: ThingType.AggNested;
}
export const aggNestedTest: MapAggTestOptions = {
name: ThingType.AggNested,
agg: {
fields: ['nested.foo'],
},
};

View File

@@ -0,0 +1,25 @@
// tslint:disable
/*
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
export enum ThingType {
AggArray = 'agg array',
AggGlobal = 'agg global',
AggGlobalNested = 'agg global nested',
AggNested = 'agg nested',
AggInherited = 'agg inherited',
AggInheritedGlobal = 'agg inherited global',
AggInheritedOverwritten = 'agg inherited overwritten',
}