2022-12-07 11:40:56 +01:00
|
|
|
import { toId } from '../../helpers/storybook'
|
|
|
|
import { test, expect } from '../../fixtures/storybook'
|
|
|
|
|
|
|
|
test.describe('trends insight', () => {
|
|
|
|
test('displays line viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Line'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays line breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Line Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays bar viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Bar'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays bar breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Bar Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays value viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Value'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays value breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Value Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays area viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Area'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays area breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Area Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays number viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Number'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays table viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Table'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays table breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Table Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays pie viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Pie'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays pie breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Pie Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays world map viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends World Map'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('funnel insight', () => {
|
|
|
|
test('displays left to right viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Left to Right'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays left to right breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Left to Right Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays top to bottom viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Top to Bottom'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays top to bottom breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Top to Bottom Breakdown'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays historical trends viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Historical Trends'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('displays time to convert viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Funnel Time to Convert'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('retention insight', () => {
|
|
|
|
test('displays viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Retention'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
// test('displays breakdown viz correctly', async ({ storyPage }) => {
|
|
|
|
// await storyPage.goto(toId('Scenes-App/Insights', 'Retention Breakdown'))
|
|
|
|
// await storyPage.screenshotMainAppContent()
|
|
|
|
// })
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('lifecycle insight', () => {
|
|
|
|
test('displays viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Lifecycle'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('stickiness insight', () => {
|
|
|
|
test('displays viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Stickiness'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2022-12-08 11:38:27 +01:00
|
|
|
// flaky test - needs investigation
|
|
|
|
// https://github.com/PostHog/posthog/pull/13185
|
|
|
|
test.skip('user paths insights', () => {
|
2022-12-07 11:40:56 +01:00
|
|
|
test('displays viz correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'User Paths'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('error states', () => {
|
|
|
|
test('display the empty state correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights/Error States', 'Empty State'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('display the error state correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights/Error States', 'Error State'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
2023-01-17 08:48:43 +01:00
|
|
|
// test doesn't time out, was previously never timing out and just showing error state instead
|
|
|
|
test.skip('display the timeout state correctly', async ({ storyPage }) => {
|
2022-12-07 11:40:56 +01:00
|
|
|
await storyPage.goto(toId('Scenes-App/Insights/Error States', 'Timeout State'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('display the funnel single step state correctly', async ({ storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights/Error States', 'Funnel Single Step'))
|
|
|
|
await storyPage.expectSceneScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('tooltip', () => {
|
|
|
|
test('displays correctly', async ({ page, storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Line'))
|
|
|
|
|
|
|
|
// hover over the graph to show the tooltip
|
|
|
|
await page.locator('canvas').hover({
|
|
|
|
position: {
|
|
|
|
x: 412,
|
|
|
|
y: 150,
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
const tooltip = await page.locator('.InsightTooltip')
|
|
|
|
await expect(tooltip).toHaveScreenshot()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
test.describe('annotations popover', () => {
|
|
|
|
test('displays correctly', async ({ page, storyPage }) => {
|
|
|
|
await storyPage.goto(toId('Scenes-App/Insights', 'Trends Line'))
|
|
|
|
|
|
|
|
// hover over the graph to show the annotations overlay
|
|
|
|
await page.locator('.AnnotationsOverlay > button:nth-child(4)').hover()
|
|
|
|
|
|
|
|
const popover = await page.locator('.AnnotationsPopover')
|
|
|
|
await expect(popover).toHaveScreenshot()
|
|
|
|
})
|
|
|
|
})
|