mirror of
https://github.com/directus/directus.git
synced 2026-02-16 05:05:01 -05:00
* Speed query up by reusing existing aliases which reduces table joins * Use subquery in top level m2o to remove duplicates * Fix linting * Apply distinct on primary key field in subqueries * Use distinct instead as there are only primary keys * Apply subquery on top level * Try remove sub sub query * Test if working for all vendors * Add support for _none and _some * Use subquery only when field depth > 1 * Add tests * Use original table names for columns with functions (#14690) * Use original table names for columns with functions * Extract filter function path parsing as shared util * Fix filter function path when adding node * Pass the originalCollectionName into filter functions * Update unit test * Replace functions within deep GraphQL * Fix invalid operator error for _none and _some * Add filter function tests * Revert triggering for all vendors * Simplify aliasMap * Replace functions in filter within GraphQL aggregate query * Add API support for filtering of alias field * Mark schema as optional * Shift logical operators upwards * Separate recursive parseFilter * Rework shifting of logical operators * Error on invalid usage of _none and _some * Use inner join to preserve sort order * Run tests for all vendors * Reuse aliasMap for sort and filter * Sort on top level query * Remove unnecessary limit on wrapper query * Refactor applyQuery options * Remove duplicates from nested multi relational sort * Fix offset in MSSQL requiring OrderBy * Disable schema cache * Use inner query only for nested sort or multi relational filter * Fix MSSQL duplicate order column * Use inner query only for multi relational * Additional integration tests * Order within partition for multi relational sorts * Rename to directus_row_number * Fix unit test * Add base sort and filter tests * Fix Oracle uppercased rowNumber column * Fix unit test * Fix top level query sort with function * Parse functions in inner query * Increase clarity with knex.ref() * Remove sort filter for top level primary key * Fix unit test * Bypass queries with groupBy * Add collection to aliasMap to fix functions in nested sort * Fix multi relational sort with functions * Add tests for filter and sort with functions * Fix accidental deletion of brackets * Fix top level alias filter node interface * Update M2M sort tests * Add M2A tests * Cast m2a primary key as varchar2 for oracle * Enable filtering tests for M2A * Fix prototype polluting assignment in aliasMap * Remove unnecessary currentKey * Simplify code to increase readability Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> * Fix linting and missing 'this' error * Revert optional chaining * Add mysql5 to tests * Fix mysql5 missing rowNumber() * Overcome indexing delays in MySQL5 * Verify MySQL5 sorting is in order as the result count varies between runs * Skip joining when sorting field already exists * Simplify variable assignment Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com> * Fix linting * Reduce duplicate logic with vars * Transform _func fields in GraphQL only for valid functions * Fix unit test * Fix unsupported date_part() in CrDB Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: Roger Stringer <roger@directus.io> Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
73 lines
1.9 KiB
YAML
73 lines
1.9 KiB
YAML
name: Blackbox Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- api/**
|
|
- tests-blackbox/**
|
|
- packages/shared/**
|
|
- package.json
|
|
- pnpm-lock.yaml
|
|
- .github/workflows/blackbox-main.yml
|
|
|
|
concurrency:
|
|
group: blackbox-main
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
NODE_OPTIONS: --max_old_space_size=6144
|
|
|
|
jobs:
|
|
test:
|
|
name: ${{ matrix.vendor }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
vendor:
|
|
- sqlite3
|
|
- postgres
|
|
- postgres10
|
|
- mysql
|
|
- mysql5
|
|
- maria
|
|
- mssql
|
|
- oracle
|
|
- cockroachdb
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Prepare
|
|
uses: ./.github/actions/prepare
|
|
|
|
- name: Reinstall production dependencies only
|
|
run: pnpm install --prod
|
|
|
|
- name: Reinstall dev dependencies for workspace root
|
|
run: pnpm install --workspace-root --dev
|
|
|
|
- name: Install Oracle client
|
|
if: matrix.vendor == 'oracle'
|
|
run: |
|
|
sudo apt update -y && sudo apt install -y alien libaio1 && \
|
|
wget https://download.oracle.com/otn_software/linux/instantclient/214000/$ORACLE_DL && \
|
|
sudo alien -i $ORACLE_DL && \
|
|
pnpm -w -D add oracledb
|
|
env:
|
|
ORACLE_DL: oracle-instantclient-basic-21.4.0.0.0-1.el8.x86_64.rpm
|
|
|
|
- name: Start services (SQLite)
|
|
if: matrix.vendor == 'sqlite3'
|
|
run: docker compose -f tests-blackbox/docker-compose.yml up auth-saml -d --quiet-pull --wait
|
|
|
|
- name: Start services (other vendors)
|
|
if: matrix.vendor != 'sqlite3'
|
|
run:
|
|
docker compose -f tests-blackbox/docker-compose.yml up ${{ matrix.vendor }} auth-saml -d --quiet-pull --wait
|
|
|
|
- name: Run tests
|
|
run: TEST_DB=${{ matrix.vendor }} pnpm run -w test:blackbox
|