You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ghost/apps/stats/test/acceptance/location.test.ts

66 lines
2.1 KiB

import LocationsTab from './pages/LocationsTab.ts';
import {addAnalyticsEvent, statsConfig} from '../utils/tinybird-helpers.ts';
import {expect, test} from '@playwright/test';
import {faker} from '@faker-js/faker';
import {
globalDataRequests,
mockApi,
responseFixtures
} from '@tryghost/admin-x-framework/test/acceptance';
test.describe('Stats App - Locations', () => {
test('loads locations tab with correct country details', async ({page}) => {
const siteUuid = faker.string.uuid();
await mockApi({
page, requests: {
...globalDataRequests,
browseConfig: {
method: 'GET', path: '/config/', response: {
config: {
...responseFixtures.config.config,
stats: {
...statsConfig,
id: siteUuid
}
}
}
}
}
});
await addAnalyticsEvent({siteUuid: siteUuid, locale: 'en-GB', location: 'GB'});
const locationsPage = new LocationsTab(page);
await locationsPage.visit();
await expect(locationsPage.body).toContainText('United Kingdom');
});
test('loads locations tab with info that there are no stats', async ({page}) => {
const siteUuid = faker.string.uuid();
await mockApi({
page, requests: {
...globalDataRequests,
browseConfig: {
method: 'GET', path: '/config/', response: {
config: {
...responseFixtures.config.config,
stats: {
...statsConfig,
id: siteUuid
}
}
}
}
}
});
const locationsPage = new LocationsTab(page);
await locationsPage.visit();
await expect(locationsPage.body).toContainText('No stats available');
});
});