0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-24 18:07:17 +01:00
posthog/cypress/e2e/actions.js
Paul D'Ambra d613f4bd06
chore: upgrade cypress to v10x (#9650)
* update cypress

* really click something that's actually there

* obey cypress and use done

* run cypress 9 in CI

* no need for before each when only one test

* no need to set window size to the default

* get tests passing file by file

* delay checking for a graph in a test

* be more specific cypress

* use cy command

* select text like a human

* silly cypress

* try and avoid cypress deciding that a visible field is not valid

* select delete button correctly

* find save button differently

* try and avoid not always typing the first character

* better trends selections

* use cy command to navigate

* conitnue trying to get tests to pass in CI

* another try at setting feature flag names in CI

* can CI find undo button without a wait?

* better assertion for cypress

* up to v10

* fix splitting specs with v10 path

* show cypress how to wait for the test to finish

* remove redundant file

* change return to satisfy new cypress

* move import
2022-06-09 11:14:21 +01:00

63 lines
2.3 KiB
JavaScript

const createAction = (actionName) => {
cy.get('[data-attr=create-action]').click()
cy.get('.ant-card-head-title').should('contain', 'event or pageview')
cy.get('[data-attr=new-action-pageview]').click()
cy.get('[data-attr=action-name-create]').should('exist')
cy.get('[data-attr=action-name-create]').type(actionName)
cy.get('.ant-radio-group > :nth-child(3)').click()
cy.get('[data-attr=edit-action-url-input]').type(Cypress.config().baseUrl)
cy.wait(300)
cy.focused().should('have.attr', 'data-attr', 'edit-action-url-input')
cy.get('[data-attr=save-action-button]').click()
cy.contains('Action saved').should('exist')
}
function navigateToActionsTab() {
cy.clickNavMenu('datamanagement')
cy.get('[data-attr=data-management-actions-tab]').click()
}
describe('Actions', () => {
let actionName
beforeEach(() => {
navigateToActionsTab()
actionName = Cypress._.random(0, 1e6)
})
it('Create action', () => {
createAction(actionName)
// Test the action is immediately available
cy.clickNavMenu('insight')
cy.contains('Add graph series').click()
cy.get('[data-attr=trend-element-subject-1]').click()
cy.get('[data-attr=taxonomic-filter-searchfield]').type(actionName)
cy.get('[data-attr=taxonomic-tab-actions]').click()
cy.get('[data-attr=prop-filter-actions-0]').click()
cy.get('[data-attr=trend-element-subject-1] span').should('contain', actionName)
})
it('Notifies when an action with this name already exists', () => {
createAction(actionName)
navigateToActionsTab()
createAction(actionName)
// Oh noes, there already is an action with name `actionName`
cy.contains('Action with this name already exists').should('exist')
// Let's see it
cy.contains('Click here to edit').click()
// We should now be seeing the action from "Create action"
cy.get('[data-attr=edit-action-url-input]').should('have.value', Cypress.config().baseUrl)
})
it('Click on an action', () => {
cy.get('[data-attr=actions-table]').should('exist')
cy.get('[data-attr=action-link-0]').click()
cy.get('[data-attr=action-name-edit]').should('exist')
})
})