-
Notifications
You must be signed in to change notification settings - Fork 202
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
Conversation
merge main
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.
// 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'; |
There was a problem hiding this comment.
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
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(); |
There was a problem hiding this comment.
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) => { |
There was a problem hiding this comment.
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}'
);
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:frontend/webapp/components/overview/add-entity/index.tsx
: Addedid
attributes toStyledButton
andDropdownItem
elements to improve element selection.frontend/webapp/containers/main/overview/overview-drawer/drawer-footer/index.tsx
: Addedid
attributes toFooterButton
elements for save, cancel, and delete actions.frontend/webapp/containers/main/overview/overview-drawer/drawer-header/index.tsx
: Addedid
attributes toInput
,EditButton
, andCloseButton
elements.frontend/webapp/reuseable-components/auto-complete-input/index.tsx
: Addedid
attributes toOptionItemContainer
elements.frontend/webapp/reuseable-components/drawer/index.tsx
: Addedid
attribute toTransition
element.frontend/webapp/reuseable-components/modal/index.tsx
: Addedid
attribute toTransition
element, including dynamic titles.frontend/webapp/reuseable-components/modal/warning-modal/index.tsx
: Addedid
attributes toFooterButton
elements for approve and deny actions.Enhancing Cypress tests:
frontend/webapp/cypress/e2e/02-onboarding.cy.ts
: Refactored tests to usebeforeEach
for intercepting GraphQL requests and improved the structure of the tests. [1] [2]Adding new Cypress tests for CRUD operations:
frontend/webapp/cypress/e2e/05-actions.cy.ts
: Added comprehensive tests for creating, updating, and deleting a Custom Resource Definition (CRD) in the cluster.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.