mirror of
https://github.com/PostHog/posthog.git
synced 2024-11-30 19:41:46 +01:00
5aa4995398
Problem
@annikaschmid accidentally deleted an insight from a dashboard and then couldn't put it back.
The insight API response was returning the deleted dashboard in the insight's dashboards field. That meant the UI didn't offer the ability to add it to that dashboard because it thought it was already added
Even though there was a test that protected against this which passes and I couldn't figure out why the application behaves well in the test and not when running 🤷
Changes
The dashboard_tiles relation is correct. And we should eventually remove the use of the dashboards relation.
So, let's expose it. This begins the deprecation of the dashboards field on the Insight API.
And overwrites the content of the dashboards field with the correct values when returning a representation of the model.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michael Matloka <dev@twixes.com>
138 lines
5.9 KiB
TypeScript
138 lines
5.9 KiB
TypeScript
import { urls } from 'scenes/urls'
|
|
|
|
describe('Trends', () => {
|
|
beforeEach(() => {
|
|
cy.visit(urls.insightNew())
|
|
})
|
|
|
|
it('Can load a graph from a URL directly', () => {
|
|
// regression test, the graph wouldn't load when going directly to a URL
|
|
cy.visit(
|
|
'/insights/new?insight=TRENDS&interval=day&display=ActionsLineGraph&events=%5B%7B"id"%3A"%24pageview"%2C"name"%3A"%24pageview"%2C"type"%3A"events"%2C"order"%3A0%7D%5D&filter_test_accounts=false&breakdown=%24referrer&breakdown_type=event&properties=%5B%7B"key"%3A"%24current_url"%2C"value"%3A"http%3A%2F%2Fhogflix.com"%2C"operator"%3A"icontains"%2C"type"%3A"event"%7D%5D'
|
|
)
|
|
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
|
|
it('Add a pageview action filter', () => {
|
|
// when
|
|
cy.contains('Add graph series').click()
|
|
cy.get('[data-attr=taxonomic-tab-actions]').click()
|
|
cy.get('[data-attr=taxonomic-filter-searchfield]').click().type('home')
|
|
cy.contains('Hogflix homepage view').click({ force: true })
|
|
|
|
// then
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
|
|
it('DAU on 1 element', () => {
|
|
cy.get('[data-attr=math-selector-0]').click()
|
|
cy.get('[data-attr=math-dau-0]').click()
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
|
|
it('Show property select dynamically', () => {
|
|
cy.get('[data-attr=math-property-selector-0]').should('not.exist')
|
|
|
|
// Test that the math selector dropdown is shown on hover
|
|
cy.get('[data-attr=math-selector-0]').click()
|
|
cy.get('[data-attr=math-total-0]').should('be.visible')
|
|
|
|
cy.get('[data-attr=math-node-property-value-0]').click()
|
|
cy.get('[data-attr=math-avg-0]').click()
|
|
cy.get('[data-attr=math-property-select]').should('exist')
|
|
})
|
|
|
|
it('Apply specific filter on default pageview event', () => {
|
|
cy.get('[data-attr=trend-element-subject-0]').click()
|
|
cy.get('[data-attr=taxonomic-filter-searchfield]').click().type('Pageview')
|
|
cy.get('.taxonomic-infinite-list').find('.taxonomic-list-row').contains('Pageview').click({ force: true })
|
|
cy.get('[data-attr=trend-element-subject-0]').should('have.text', 'Pageview')
|
|
|
|
// Apply a property filter
|
|
cy.get('[data-attr=show-prop-filter-0]').click()
|
|
cy.get('[data-attr=property-select-toggle-0]').click()
|
|
cy.get('[data-attr=prop-filter-event_properties-1]').click({ force: true })
|
|
|
|
cy.get('[data-attr=prop-val]').click({ force: true })
|
|
// cypress is odd and even though when a human clicks this the right dropdown opens
|
|
// in the test that doesn't happen
|
|
cy.get('body').then(($body) => {
|
|
if ($body.find('[data-attr=prop-val-0]').length === 0) {
|
|
cy.get('[data-attr=taxonomic-value-select]').click()
|
|
}
|
|
})
|
|
cy.get('[data-attr=trend-line-graph]', { timeout: 8000 }).should('exist')
|
|
})
|
|
|
|
it('Apply 1 overall filter', () => {
|
|
cy.get('[data-attr=trend-element-subject-0]').click()
|
|
cy.get('[data-attr=taxonomic-filter-searchfield]').click().type('Pageview')
|
|
cy.get('.taxonomic-infinite-list').find('.taxonomic-list-row').contains('Pageview').click({ force: true })
|
|
cy.get('[data-attr=trend-element-subject-0]').should('have.text', 'Pageview')
|
|
|
|
cy.get('[data-attr=insight-filters-add-filter-group]').click()
|
|
cy.get('[data-attr=property-select-toggle-0]').click()
|
|
cy.get('[data-attr=taxonomic-filter-searchfield]').click()
|
|
cy.get('[data-attr=prop-filter-event_properties-1]').click({ force: true })
|
|
cy.get('[data-attr=prop-val]').click({ force: true })
|
|
// cypress is odd and even though when a human clicks this the right dropdown opens
|
|
// in the test that doesn't happen
|
|
cy.get('body').then(($body) => {
|
|
if ($body.find('[data-attr=prop-val-0]').length === 0) {
|
|
cy.get('[data-attr=taxonomic-value-select]').click()
|
|
}
|
|
})
|
|
cy.get('[data-attr=prop-val-0]').click({ force: true })
|
|
|
|
cy.get('[data-attr=trend-line-graph]', { timeout: 8000 }).should('exist')
|
|
})
|
|
|
|
it('Apply interval filter', () => {
|
|
cy.get('[data-attr=interval-filter]').click()
|
|
cy.contains('Week').click()
|
|
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
|
|
it('Apply pie filter', () => {
|
|
cy.get('[data-attr=chart-filter]').click()
|
|
cy.get('.Popup').find('.LemonButton').contains('Pie').click({ force: true })
|
|
|
|
cy.get('[data-attr=trend-pie-graph]').should('exist')
|
|
})
|
|
|
|
it('Apply table filter', () => {
|
|
cy.get('[data-attr=chart-filter]').click()
|
|
cy.get('.Popup').find('.LemonButton').contains('Table').click({ force: true })
|
|
|
|
cy.get('[data-attr=insights-table-graph]').should('exist')
|
|
|
|
// Select Total Count math property
|
|
cy.get('[data-attr=math-selector-0]').click()
|
|
cy.get('[data-attr=math-total-0]').click()
|
|
|
|
// Should contain more than label column
|
|
cy.get('[data-attr=insights-table-graph]').find('td').its('length').should('be.gte', 1)
|
|
})
|
|
|
|
it('Apply date filter', () => {
|
|
cy.get('[data-attr=date-filter]').click()
|
|
cy.get('div').contains('Yesterday').should('exist').click()
|
|
cy.get('[data-attr=trend-line-graph]', { timeout: 10000 }).should('exist')
|
|
})
|
|
|
|
it('Apply property breakdown', () => {
|
|
cy.get('[data-attr=add-breakdown-button]').click()
|
|
cy.get('[data-attr=prop-filter-event_properties-1]').click({ force: true })
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
|
|
it('Apply all users cohort breakdown', () => {
|
|
cy.get('[data-attr=add-breakdown-button]').click()
|
|
cy.get('[data-attr=taxonomic-tab-cohorts_with_all]').click()
|
|
cy.contains('All Users*').click()
|
|
cy.get('[data-attr=trend-line-graph]').should('exist')
|
|
})
|
|
})
|