From f582d83afceef8e9d1e35fa2e2b66ff7a78fe2ea Mon Sep 17 00:00:00 2001 From: Cesar Celis Hernandez Date: Wed, 23 Mar 2022 21:35:10 -0400 Subject: [PATCH] Splitting permission test (#1757) --- .github/workflows/jobs.yaml | 162 +++++++++++++++++- Makefile | 14 +- .../bucketWritePrefixOnly.ts | 0 .../{permissions => permissions-1}/groups.ts | 0 .../iamPolicies.ts | 0 .../notificationEndpoints.ts | 0 .../test-fix-ui-crash-for-policy.ts | 0 .../{permissions => permissions-1}/trace.ts | 0 .../{permissions => permissions-1}/users.ts | 0 .../bucketWrite.ts | 0 .../dashboard.ts | 0 .../diagnostics.ts | 0 .../{permissions => permissions-2}/heal.ts | 0 .../{permissions => permissions-2}/inspect.ts | 0 .../settings.ts | 0 .../{permissions => permissions-2}/tiers.ts | 0 .../{permissions => permissions-2}/watch.ts | 0 .../{permissions => permissions-3}/admin.ts | 0 .../bucketAssignPolicy.ts | 0 .../bucketDeleteAllVersions.ts | 0 .../bucketObjectTags.ts | 0 .../bucketRead.ts | 0 .../bucketSpecific.ts | 0 .../{permissions => permissions-3}/logs.ts | 0 portal-ui/tests/scripts/permissions.sh | 2 +- 25 files changed, 172 insertions(+), 6 deletions(-) rename portal-ui/tests/{permissions => permissions-1}/bucketWritePrefixOnly.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/groups.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/iamPolicies.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/notificationEndpoints.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/test-fix-ui-crash-for-policy.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/trace.ts (100%) rename portal-ui/tests/{permissions => permissions-1}/users.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/bucketWrite.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/dashboard.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/diagnostics.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/heal.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/inspect.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/settings.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/tiers.ts (100%) rename portal-ui/tests/{permissions => permissions-2}/watch.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/admin.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/bucketAssignPolicy.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/bucketDeleteAllVersions.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/bucketObjectTags.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/bucketRead.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/bucketSpecific.ts (100%) rename portal-ui/tests/{permissions => permissions-3}/logs.ts (100%) mode change 100644 => 100755 portal-ui/tests/scripts/permissions.sh diff --git a/.github/workflows/jobs.yaml b/.github/workflows/jobs.yaml index 299fb7ff0..60f7fab46 100644 --- a/.github/workflows/jobs.yaml +++ b/.github/workflows/jobs.yaml @@ -669,8 +669,8 @@ jobs: with: args: '"chrome:headless" portal-ui/tests/operator/ --skip-js-errors -c 3' - permissions: - name: Permissions Tests + permissions-1: + name: Permissions Tests Part 1 needs: - lint-job - no-warnings-and-make-assets @@ -741,7 +741,163 @@ jobs: - name: Run TestCafe Tests uses: DevExpress/testcafe-action@latest with: - args: '"chrome:headless" portal-ui/tests/permissions/ --skip-js-errors -c 3' + args: '"chrome:headless" portal-ui/tests/permissions-1/ --skip-js-errors -c 3' + + - name: Clean up users & policies + run: | + make cleanup-permissions + + permissions-2: + name: Permissions Tests Part 2 + needs: + - lint-job + - no-warnings-and-make-assets + - reuse-golang-dependencies + - vulnerable-dependencies-checks + runs-on: ${{ matrix.os }} + strategy: + matrix: + go-version: [ 1.17.x ] + os: [ ubuntu-latest ] + steps: + - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + id: go + - uses: actions/setup-node@v2 + with: + node-version: '16' + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + id: yarn-cache + name: Yarn Cache + with: + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + ./portal-ui/node_modules/ + ./portal-ui/build/ + key: ${{ runner.os }}-yarn-${{ hashFiles('./portal-ui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - uses: actions/cache@v2 + id: assets-cache + name: Assets Cache + with: + path: | + ./portal-ui/build/ + key: ${{ runner.os }}-assets-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-assets- + + - uses: actions/cache@v2 + name: Go Mod Cache + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ github.run_id }} + + - name: Build Console on ${{ matrix.os }} + env: + GO111MODULE: on + GOOS: linux + run: | + make console + + - name: Start Console, front-end app and initialize users/policies + run: | + (./console server) & (make initialize-permissions) + + - name: Run TestCafe Tests + uses: DevExpress/testcafe-action@latest + with: + args: '"chrome:headless" portal-ui/tests/permissions-2/ --skip-js-errors -c 3' + + - name: Clean up users & policies + run: | + make cleanup-permissions + + permissions-3: + name: Permissions Tests Part 3 + needs: + - lint-job + - no-warnings-and-make-assets + - reuse-golang-dependencies + - vulnerable-dependencies-checks + runs-on: ${{ matrix.os }} + strategy: + matrix: + go-version: [ 1.17.x ] + os: [ ubuntu-latest ] + steps: + - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + id: go + - uses: actions/setup-node@v2 + with: + node-version: '16' + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + id: yarn-cache + name: Yarn Cache + with: + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + ./portal-ui/node_modules/ + ./portal-ui/build/ + key: ${{ runner.os }}-yarn-${{ hashFiles('./portal-ui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - uses: actions/cache@v2 + id: assets-cache + name: Assets Cache + with: + path: | + ./portal-ui/build/ + key: ${{ runner.os }}-assets-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-assets- + + - uses: actions/cache@v2 + name: Go Mod Cache + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ github.run_id }} + + - name: Build Console on ${{ matrix.os }} + env: + GO111MODULE: on + GOOS: linux + run: | + make console + + - name: Start Console, front-end app and initialize users/policies + run: | + (./console server) & (make initialize-permissions) + + - name: Run TestCafe Tests + uses: DevExpress/testcafe-action@latest + with: + args: '"chrome:headless" portal-ui/tests/permissions-3/ --skip-js-errors -c 3' - name: Clean up users & policies run: | diff --git a/Makefile b/Makefile index 1f92b3b5d..3c7b6d88c 100644 --- a/Makefile +++ b/Makefile @@ -89,9 +89,19 @@ test-operator: @(env bash $(PWD)/portal-ui/tests/scripts/operator.sh) @(docker stop minio) -test-permissions: +test-permissions-1: @(docker run -v /data1 -v /data2 -v /data3 -v /data4 -d --name minio --rm -p 9000:9000 quay.io/minio/minio:latest server /data{1...4}) - @(env bash $(PWD)/portal-ui/tests/scripts/permissions.sh) + @(env bash $(PWD)/portal-ui/tests/scripts/permissions.sh "portal-ui/tests/permissions-1/") + @(docker stop minio) + +test-permissions-2: + @(docker run -v /data1 -v /data2 -v /data3 -v /data4 -d --name minio --rm -p 9000:9000 quay.io/minio/minio:latest server /data{1...4}) + @(env bash $(PWD)/portal-ui/tests/scripts/permissions.sh "portal-ui/tests/permissions-2/") + @(docker stop minio) + +test-permissions-3: + @(docker run -v /data1 -v /data2 -v /data3 -v /data4 -d --name minio --rm -p 9000:9000 quay.io/minio/minio:latest server /data{1...4}) + @(env bash $(PWD)/portal-ui/tests/scripts/permissions.sh "portal-ui/tests/permissions-3/") @(docker stop minio) test-apply-permissions: diff --git a/portal-ui/tests/permissions/bucketWritePrefixOnly.ts b/portal-ui/tests/permissions-1/bucketWritePrefixOnly.ts similarity index 100% rename from portal-ui/tests/permissions/bucketWritePrefixOnly.ts rename to portal-ui/tests/permissions-1/bucketWritePrefixOnly.ts diff --git a/portal-ui/tests/permissions/groups.ts b/portal-ui/tests/permissions-1/groups.ts similarity index 100% rename from portal-ui/tests/permissions/groups.ts rename to portal-ui/tests/permissions-1/groups.ts diff --git a/portal-ui/tests/permissions/iamPolicies.ts b/portal-ui/tests/permissions-1/iamPolicies.ts similarity index 100% rename from portal-ui/tests/permissions/iamPolicies.ts rename to portal-ui/tests/permissions-1/iamPolicies.ts diff --git a/portal-ui/tests/permissions/notificationEndpoints.ts b/portal-ui/tests/permissions-1/notificationEndpoints.ts similarity index 100% rename from portal-ui/tests/permissions/notificationEndpoints.ts rename to portal-ui/tests/permissions-1/notificationEndpoints.ts diff --git a/portal-ui/tests/permissions/test-fix-ui-crash-for-policy.ts b/portal-ui/tests/permissions-1/test-fix-ui-crash-for-policy.ts similarity index 100% rename from portal-ui/tests/permissions/test-fix-ui-crash-for-policy.ts rename to portal-ui/tests/permissions-1/test-fix-ui-crash-for-policy.ts diff --git a/portal-ui/tests/permissions/trace.ts b/portal-ui/tests/permissions-1/trace.ts similarity index 100% rename from portal-ui/tests/permissions/trace.ts rename to portal-ui/tests/permissions-1/trace.ts diff --git a/portal-ui/tests/permissions/users.ts b/portal-ui/tests/permissions-1/users.ts similarity index 100% rename from portal-ui/tests/permissions/users.ts rename to portal-ui/tests/permissions-1/users.ts diff --git a/portal-ui/tests/permissions/bucketWrite.ts b/portal-ui/tests/permissions-2/bucketWrite.ts similarity index 100% rename from portal-ui/tests/permissions/bucketWrite.ts rename to portal-ui/tests/permissions-2/bucketWrite.ts diff --git a/portal-ui/tests/permissions/dashboard.ts b/portal-ui/tests/permissions-2/dashboard.ts similarity index 100% rename from portal-ui/tests/permissions/dashboard.ts rename to portal-ui/tests/permissions-2/dashboard.ts diff --git a/portal-ui/tests/permissions/diagnostics.ts b/portal-ui/tests/permissions-2/diagnostics.ts similarity index 100% rename from portal-ui/tests/permissions/diagnostics.ts rename to portal-ui/tests/permissions-2/diagnostics.ts diff --git a/portal-ui/tests/permissions/heal.ts b/portal-ui/tests/permissions-2/heal.ts similarity index 100% rename from portal-ui/tests/permissions/heal.ts rename to portal-ui/tests/permissions-2/heal.ts diff --git a/portal-ui/tests/permissions/inspect.ts b/portal-ui/tests/permissions-2/inspect.ts similarity index 100% rename from portal-ui/tests/permissions/inspect.ts rename to portal-ui/tests/permissions-2/inspect.ts diff --git a/portal-ui/tests/permissions/settings.ts b/portal-ui/tests/permissions-2/settings.ts similarity index 100% rename from portal-ui/tests/permissions/settings.ts rename to portal-ui/tests/permissions-2/settings.ts diff --git a/portal-ui/tests/permissions/tiers.ts b/portal-ui/tests/permissions-2/tiers.ts similarity index 100% rename from portal-ui/tests/permissions/tiers.ts rename to portal-ui/tests/permissions-2/tiers.ts diff --git a/portal-ui/tests/permissions/watch.ts b/portal-ui/tests/permissions-2/watch.ts similarity index 100% rename from portal-ui/tests/permissions/watch.ts rename to portal-ui/tests/permissions-2/watch.ts diff --git a/portal-ui/tests/permissions/admin.ts b/portal-ui/tests/permissions-3/admin.ts similarity index 100% rename from portal-ui/tests/permissions/admin.ts rename to portal-ui/tests/permissions-3/admin.ts diff --git a/portal-ui/tests/permissions/bucketAssignPolicy.ts b/portal-ui/tests/permissions-3/bucketAssignPolicy.ts similarity index 100% rename from portal-ui/tests/permissions/bucketAssignPolicy.ts rename to portal-ui/tests/permissions-3/bucketAssignPolicy.ts diff --git a/portal-ui/tests/permissions/bucketDeleteAllVersions.ts b/portal-ui/tests/permissions-3/bucketDeleteAllVersions.ts similarity index 100% rename from portal-ui/tests/permissions/bucketDeleteAllVersions.ts rename to portal-ui/tests/permissions-3/bucketDeleteAllVersions.ts diff --git a/portal-ui/tests/permissions/bucketObjectTags.ts b/portal-ui/tests/permissions-3/bucketObjectTags.ts similarity index 100% rename from portal-ui/tests/permissions/bucketObjectTags.ts rename to portal-ui/tests/permissions-3/bucketObjectTags.ts diff --git a/portal-ui/tests/permissions/bucketRead.ts b/portal-ui/tests/permissions-3/bucketRead.ts similarity index 100% rename from portal-ui/tests/permissions/bucketRead.ts rename to portal-ui/tests/permissions-3/bucketRead.ts diff --git a/portal-ui/tests/permissions/bucketSpecific.ts b/portal-ui/tests/permissions-3/bucketSpecific.ts similarity index 100% rename from portal-ui/tests/permissions/bucketSpecific.ts rename to portal-ui/tests/permissions-3/bucketSpecific.ts diff --git a/portal-ui/tests/permissions/logs.ts b/portal-ui/tests/permissions-3/logs.ts similarity index 100% rename from portal-ui/tests/permissions/logs.ts rename to portal-ui/tests/permissions-3/logs.ts diff --git a/portal-ui/tests/scripts/permissions.sh b/portal-ui/tests/scripts/permissions.sh old mode 100644 new mode 100755 index 2cfcc60bd..f86d3db9a --- a/portal-ui/tests/scripts/permissions.sh +++ b/portal-ui/tests/scripts/permissions.sh @@ -86,7 +86,7 @@ __init__() { } main() { - (yarn start &> /dev/null) & (./console server &> /dev/null) & (testcafe "chrome:headless" portal-ui/tests/permissions/ -q --skip-js-errors -c 3) + (yarn start &> /dev/null) & (./console server &> /dev/null) & (testcafe "chrome:headless" "$1" -q --skip-js-errors -c 3) cleanup }