Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(CI): enable unit-tests for Konflux builds #2305

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from
Draft
89 changes: 48 additions & 41 deletions .tekton/compliance-frontend-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -301,48 +301,55 @@ spec:
workspaces:
- name: basic-auth
workspace: git-auth
# - name: run-unit-tests
# description: Validates frontend unit tests
# params:
# - name: SOURCE_ARTIFACT
# value: $(tasks.clone-repository-oci-ta.results.SOURCE_ARTIFACT)
# runAfter:
# - clone-repository-oci-ta
# workspaces:
# - name: basic-auth
# workspace: git-auth
# taskSpec:
# params:
# - description: The Trusted Artifact URI pointing to the artifact with the application source code.
# name: SOURCE_ARTIFACT
# type: string
# volumes:
# # New volume to store a copy of the source code accessible only to this Task.
# - name: workdir
# emptyDir: {}
# stepTemplate:
# volumeMounts:
# - mountPath: /var/workdir
# name: workdir
# readOnly: false
# sidecars:
# steps:
# - name: use-trusted-artifact
# image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:8391272c4e5011120e9e7fee2c1f339e9405366110bf239dadcbc21e953ce099
# args:
# - use
# - $(params.SOURCE_ARTIFACT)=/var/workdir
# - image: registry.access.redhat.com/ubi8/nodejs-20
# workingDir: /var/workdir
# name: unit-tests
# securityContext:
# runAsUser: 0
# script: |
# #!/bin/bash
# set -ex
- name: run-unit-tests
description: Validates frontend unit tests
params:
- name: SOURCE_ARTIFACT
value: $(tasks.clone-repository-oci-ta.results.SOURCE_ARTIFACT)
runAfter:
- clone-repository-oci-ta
workspaces:
- name: basic-auth
workspace: git-auth
taskSpec:
params:
- description: The Trusted Artifact URI pointing to the artifact with the application source code.
name: SOURCE_ARTIFACT
type: string
volumes:
# New volume to store a copy of the source code accessible only to this Task.
- name: workdir
emptyDir: {}
stepTemplate:
volumeMounts:
- mountPath: /var/workdir
name: workdir
readOnly: false
sidecars:
steps:
- name: use-trusted-artifact
image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:52f1391e6f1c472fd10bb838f64fae2ed3320c636f536014978a5ddbdfc6b3af
args:
- use
- $(params.SOURCE_ARTIFACT)=/var/workdir
- image: registry.access.redhat.com/ubi8/nodejs-20
workingDir: /var/workdir
name: unit-tests
computeResources:
requests:
memory: 4Gi
cpu: 500m
limits:
memory: 8Gi
cpu: 1000m
securityContext:
runAsUser: 0
script: |
#!/bin/bash
set -ex

# npm install
# npm test
npm install
npm test
- name: build-container
params:
- name: IMAGE
Expand Down
92 changes: 46 additions & 46 deletions .tekton/compliance-frontend-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -298,53 +298,53 @@ spec:
workspaces:
- name: basic-auth
workspace: git-auth
# - name: run-unit-tests
# description: Validates frontend unit tests
# params:
# - name: SOURCE_ARTIFACT
# value: $(tasks.clone-repository-oci-ta.results.SOURCE_ARTIFACT)
# runAfter:
# - clone-repository-oci-ta
# computeResources:
# requests:
# memory: 1Gi
# requests:
# memory: 2Gi
# workspaces:
# - name: basic-auth
# workspace: git-auth
# taskSpec:
# params:
# - description: The Trusted Artifact URI pointing to the artifact with the application source code.
# name: SOURCE_ARTIFACT
# type: string
# volumes:
# # New volume to store a copy of the source code accessible only to this Task.
# - name: workdir
# emptyDir: {}
# stepTemplate:
# volumeMounts:
# - mountPath: /var/workdir
# name: workdir
# readOnly: false
# sidecars:
# steps:
# - name: use-trusted-artifact
# image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:8391272c4e5011120e9e7fee2c1f339e9405366110bf239dadcbc21e953ce099
# args:
# - use
# - $(params.SOURCE_ARTIFACT)=/var/workdir
# - image: registry.access.redhat.com/ubi8/nodejs-20
# workingDir: /var/workdir
# name: unit-tests
# securityContext:
# runAsUser: 0
# script: |
# #!/bin/bash
# set -ex
- name: run-unit-tests
description: Validates frontend unit tests
params:
- name: SOURCE_ARTIFACT
value: $(tasks.clone-repository-oci-ta.results.SOURCE_ARTIFACT)
runAfter:
- clone-repository-oci-ta
computeResources:
requests:
memory: 1Gi
requests:
memory: 2Gi
workspaces:
- name: basic-auth
workspace: git-auth
taskSpec:
params:
- description: The Trusted Artifact URI pointing to the artifact with the application source code.
name: SOURCE_ARTIFACT
type: string
volumes:
# New volume to store a copy of the source code accessible only to this Task.
- name: workdir
emptyDir: {}
stepTemplate:
volumeMounts:
- mountPath: /var/workdir
name: workdir
readOnly: false
sidecars:
steps:
- name: use-trusted-artifact
image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:52f1391e6f1c472fd10bb838f64fae2ed3320c636f536014978a5ddbdfc6b3af
args:
- use
- $(params.SOURCE_ARTIFACT)=/var/workdir
- image: registry.access.redhat.com/ubi8/nodejs-20
workingDir: /var/workdir
name: unit-tests
securityContext:
runAsUser: 0
script: |
#!/bin/bash
set -ex

# npm install
# npm test
npm install
npm test
- name: build-container
params:
- name: IMAGE
Expand Down
19 changes: 16 additions & 3 deletions src/SmartComponents/CreatePolicy/CreatePolicy.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,22 +47,30 @@ describe('CreatePolicy', () => {
randomSystems,
randomSystemsCounts,
} = graphqlQueryMocks(['7']);

console.log('Start rendering');
render(
<TestWrapper mocks={mocks} store={store}>
<CreatePolicy />
</TestWrapper>
);

console.log('eshamard TEST 1');
expect(screen.getByRole('button', { name: 'Next' })).toBeDisabled();
console.log('eshamard TEST 2');

await checkStep('Create SCAP policy', async () => {
await screen.findByText('Operating system');
console.log('eshamard TEST 2.1')
await waitFor(
() => expect(screen.getByText('Operating system')).toBeInTheDocument(),
{ timeout: 15000 }
);
// await screen.findByText('Operating system', {}, { timeout: 15000 });
console.log('eshamard TEST 2.2')
await userEvent.click(
screen.getByRole('option', {
name: 'RHEL ' + osMajorVersionToSelect.osMajorVersion,
})
);
console.log('eshamard TEST 3');

expect(screen.getByText('Policy type')).toBeInTheDocument();

Expand All @@ -71,21 +79,26 @@ describe('CreatePolicy', () => {
screen.getByRole('textbox', { name: 'text input' }),
profileToSelect.name
);
console.log('TEST 4');

await userEvent.click(
screen.getByRole('radio', { name: 'Select row 0' })
);
});
console.log('TEST 5');

await nextStep('Details', async () => {
expect(screen.getByText('Policy name')).toBeInTheDocument();
});
console.log('TEST 6');

await nextStep('Systems', async () => {
// Since we mock InventoryTable we need to dispatch a change manually
dispatchFieldChange(store, 'systems', randomSystems);
dispatchFieldChange(store, 'osMinorVersionCounts', randomSystemsCounts);
});
console.log('TEST 7');

// TODO add proper rules data
// await nextStep('Rules', async () => {
// expect(screen.getByText(profileToSelect.name)).toBeInTheDocument();
Expand Down