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

[GEN-1911]: add CRUD E2E tests for UI actions #1942

Merged
merged 250 commits into from
Dec 9, 2024

Conversation

BenElferink
Copy link
Contributor

@BenElferink BenElferink commented Dec 8, 2024

This pull request includes several changes to the frontend web application, primarily focusing on adding unique identifiers to various elements and improving Cypress tests. The most important changes include adding id attributes to key elements, enhancing the Cypress tests for better reliability, and adding new tests for CRUD operations on a specific resource.

Adding id attributes to elements:

Enhancing Cypress tests:

Adding new Cypress tests for CRUD operations:

These changes aim to enhance the testability and reliability of the frontend components and ensure the robustness of the application through improved end-to-end testing.

BenElferink and others added 30 commits October 20, 2024 05:28
This pull request includes several changes to improve the handling of
action types in the `CreateAction` and `UpdateAction` resolvers, as well
as the addition of a new update function for `AddClusterInfo` actions.
The most important changes involve refactoring action type strings into
constants and implementing the `UpdateAddClusterInfo` function.

### Refactoring action types:

*
[`frontend/graph/schema.resolvers.go`](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L560-R560):
Replaced hardcoded action type strings with constants from
`actionservices` for better maintainability.
[[1]](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L560-R560)
[[2]](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L569-R569)

### New update functionality:

*
[`frontend/graph/schema.resolvers.go`](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L582-R599):
Implemented the `UpdateAction` resolver to handle updating
`AddClusterInfo` actions.
*
[`frontend/services/actions/addclusterinfo.go`](diffhunk://#diff-c2da2861415e61f772e3b44d22810aa34b4eba6070f744709c4b1b6b919a3f09L70-R137):
Added the `UpdateAddClusterInfo` function to update existing
`AddClusterInfo` actions in Kubernetes.

### Constants definition:

*
[`frontend/services/actions/constants.go`](diffhunk://#diff-377602090c56364ea3a4d6cdadda1ad9b1c6ba9e122f882e5a1f640b1e62acf8R1-R7):
Added constants for action types `ActionTypeAddClusterInfo` and
`ActionTypeDeleteAttribute`.
This pull request introduces changes to the `DeleteAction` functionality
in the `frontend/graph` package, adding support for an `actionType`
parameter. This enhancement allows for more specific handling of
different action types during deletion.

Key changes include:

### GraphQL Schema and Resolvers

*
[`frontend/graph/schema.graphqls`](diffhunk://#diff-bc07b91dedd1782d9ddbbb6374ad97c7604f9a267de5174645723d863c732f80L314-R314):
Updated the `deleteAction` mutation to include an `actionType`
parameter.
*
[`frontend/graph/schema.resolvers.go`](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L603-R620):
Modified the `DeleteAction` resolver to handle different action types
based on the `actionType` parameter.

### Generated Code

*
[`frontend/graph/generated.go`](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2L200-R200):
Updated the `DeleteAction` method signatures and complexity calculations
to include the `actionType` parameter.
[[1]](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2L200-R200)
[[2]](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2L266-R266)
[[3]](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2L911-R911)
[[4]](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2R1342-R1350)
[[5]](diffhunk://#diff-4bacf1f13939a5c243f3f83d21f4560b331d13667d81ea5945ed1f57ddb205f2L5793-R5802)

### Action Services

*
[`frontend/services/actions/addclusterinfo.go`](diffhunk://#diff-c2da2861415e61f772e3b44d22810aa34b4eba6070f744709c4b1b6b919a3f09R148-R162):
Added the `DeleteAddClusterInfo` function to handle the deletion of
`AddClusterInfo` actions.
*
[`frontend/services/actions/addclusterinfo.go`](diffhunk://#diff-c2da2861415e61f772e3b44d22810aa34b4eba6070f744709c4b1b6b919a3f09R13):
Imported `apierrors` for error handling in the new deletion function.
[GEN-1515]: fix stringify for graphql (odigos-io#1615)
This pull request introduces a new `ProbabilisticSamplerAction` to the
codebase, along with the necessary updates to support its creation,
update, and deletion. The key changes include adding the new action
type, updating the GraphQL schema, and implementing the corresponding
service functions.

### Addition of `ProbabilisticSamplerAction`:

*
[`frontend/graph/model/models_gen.go`](diffhunk://#diff-642ccd7ed71fdfa394bd7f7fd99c9c33e20ff18c876a91cb989d379a44390469R311-R337):
Added the `ProbabilisticSamplerAction` struct and its methods to the
model.
*
[`frontend/graph/schema.graphqls`](diffhunk://#diff-bc07b91dedd1782d9ddbbb6374ad97c7604f9a267de5174645723d863c732f80R309-R318):
Updated the GraphQL schema to include the `ProbabilisticSamplerAction`
type.

### Resolver Updates:

*
[`frontend/graph/schema.resolvers.go`](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L568-R571):
Updated the `CreateAction`, `UpdateAction`, and `DeleteAction` resolvers
to handle the new `ProbabilisticSamplerAction` type.
[[1]](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L568-R571)
[[2]](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L586-R591)
[[3]](diffhunk://#diff-8e6e95029056db2c0301fc338e0ca5a04356ce5d45ee9514bbd167f2d85bae70L617-R630)

### Constants Update:

*
[`frontend/services/actions/constants.go`](diffhunk://#diff-377602090c56364ea3a4d6cdadda1ad9b1c6ba9e122f882e5a1f640b1e62acf8L8-R9):
Added `ActionTypeProbabilisticSampler` and corrected the naming of
`ActionTypeLatencySampler`.

### Service Implementation:

*
[`frontend/services/actions/probabilisticsampler.go`](diffhunk://#diff-2f6dc14f04b67e0a11a5b999216a0e08f575927294c5033187b84f1179fb5624R1-R139):
Implemented the service functions `CreateProbabilisticSampler`,
`UpdateProbabilisticSampler`, and `DeleteProbabilisticSampler` to manage
`ProbabilisticSamplerAction` in Kubernetes.
Copy link

// If you have to run tests locally, make sure to clean up the cluster before running the tests.

describe('Actions CRUD', () => {
const namespace = 'odigos-system';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can be reuse from a common file to other tests

Suggested change
const namespace = 'odigos-system';
const namespace = 'odigos-system';

cy.get('[data-id=add-entity]').click();
cy.get('[data-id=add-action]').click();
cy.get('[data-id=modal-Add-Action]').should('exist');
cy.get('[data-id=modal-Add-Action]').find('input').should('have.attr', 'placeholder', 'Type to search...').click();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can also be from consts -> SELECTORS

it('Should create a CRD in the cluster', () => {
cy.visit(ROUTES.OVERVIEW);

cy.exec(`kubectl get ${crdName} -n ${namespace} | awk 'NR>1 {print $1}'`).then((crdListBefore) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dup function ->

const getCRDList = () =>
cy.exec(kubectl get ${crdName} -n ${namespace} | awk 'NR>1 {print $1}');

@BenElferink BenElferink enabled auto-merge (squash) December 9, 2024 09:04
@BenElferink BenElferink merged commit f636461 into odigos-io:main Dec 9, 2024
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants