mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* Add black box tests * Revert docker compose file * Update workflow * Try use workflow from dev repo * Increase seedDB() timeout * Disable other checks for now * Change DB sequence * Update jest moduleNameMapper * Update workflow's docker-compose.yml path * Slice array first * Remove differentiation of status code * Delete field only after foreign key constraints are removed * Add checks for different types of primary key * Test global query filter for all field types * Increase timeout for m2o seeding * Add case insensitive string operators * Update filter check to run on relational fields * Enable time field checks * Add seeded random and fix relational seeding * Add casting for integer and bigInteger * Minor fixes * Reduce bigInt values * Separate seeding of DB structure from values * Add primaryKey seeding function * Use automatic IDs except for string pk * Try fix ci * Update package-lock.json * Update common.test for concealed user tokens * Use dynamic field type for m2o.test relational fields * Temporary disable missing nicontains for string type * Add support for alias type filtering * Fix relational filter operator checks * Add initial o2m test * Remove integer pk limit * Add empty checks for string and uuid null * Limit generated integer value to 4 bytes * Patch timezone tests for MSSQL * Remove sample query filter test * Fix timezone test for sqlite * Fix MSSQL uuids * Fix MSSQL timestamp inaccuracy * Cast datetime schema to milliseconds for comparison * Fix MySQL / Maria timestamp inaccuracy * Fix MySQL / Maria between operator inconsistency for float type * Fix missing time datatype in Oracle * Skip filter testing on Oracle * Enable o2m filter tests for other collections * Run tests only on SQLite for PRs unless the Full Tests label exists * Try fix actions * Refactor github actions * Update tests flow setup to use getURL() * Start postgres docker * Reinstate package-lock * Fix geometry test * Remove .gitkeep files * Add todo.md * Rename black box to blackbox Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import request from 'supertest';
|
|
import { getUrl } from '@common/config';
|
|
import { CreateItem, SeedFunctions, PrimaryKeyType } from '@common/index';
|
|
import { TestsFieldSchema } from '@query/filter';
|
|
import * as common from '@common/index';
|
|
|
|
export const seedRelationalFields = async (
|
|
vendor: string,
|
|
collection: string,
|
|
pkType: PrimaryKeyType,
|
|
testsSchema: TestsFieldSchema
|
|
) => {
|
|
try {
|
|
// Create items
|
|
let generatedStringIdCounter = 0;
|
|
for (const key of Object.keys(testsSchema)) {
|
|
// Oracle does not have a time datatype
|
|
if (vendor === 'oracle' && testsSchema[key].type === 'time') {
|
|
continue;
|
|
}
|
|
|
|
const items = [];
|
|
|
|
if (testsSchema[key].children) {
|
|
const response = await request(getUrl(vendor))
|
|
.get(`/items/${testsSchema[key].relatedCollection}`)
|
|
.set('Authorization', `Bearer ${common.USER.TESTS_FLOW.TOKEN}`)
|
|
.query({ fields: 'id', limit: -1 });
|
|
|
|
const primaryKeys = response.body.data.map((item: any) => item.id);
|
|
|
|
if (pkType === 'string') {
|
|
for (const pk of primaryKeys) {
|
|
items.push({
|
|
id: SeedFunctions.generateValues.string({
|
|
quantity: 1,
|
|
seed: `relational-id-${generatedStringIdCounter}`,
|
|
})[0],
|
|
[testsSchema[key].field]: pk,
|
|
});
|
|
generatedStringIdCounter++;
|
|
}
|
|
} else {
|
|
for (const pk of primaryKeys) {
|
|
items.push({
|
|
[testsSchema[key].field]: pk,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
if (items.length > 0) {
|
|
await CreateItem(vendor, {
|
|
collection: collection,
|
|
item: items,
|
|
});
|
|
}
|
|
}
|
|
|
|
expect(true).toBeTruthy();
|
|
} catch (error) {
|
|
expect(error).toBeFalsy();
|
|
}
|
|
};
|