import React, { HTMLAttributes } from 'react' import { render, screen } from '@testing-library/react' import { parseSiteFromDataset, PlausibleSite } from './site-context' describe('parseSiteFromDataset', () => { const StatsReactContainer = ({ ...attrs }: HTMLAttributes) => (
) const expectedParsedSite: PlausibleSite = { domain: 'dummy.site/nice', offset: 20700, hasGoals: true, conversionsOptedOut: false, funnelsOptedOut: false, propsOptedOut: false, funnelsAvailable: true, propsAvailable: true, siteSegmentsAvailable: true, revenueGoals: [{ currency: 'USD', display_name: 'Purchase' }], funnels: [{ id: 1, name: 'From homepage to login', steps_count: 3 }], hasProps: true, statsBegin: '2021-09-07', nativeStatsBegin: '2022-09-02', embedded: false, background: undefined, isDbip: false, flags: {}, validIntervalsByPeriod: { '12mo': ['day', 'week', 'month'], '30d': ['day', 'week'], '6mo': ['day', 'week', 'month'], '7d': ['hour', 'day'], all: ['week', 'month'], custom: ['day', 'week', 'month'], day: ['minute', 'hour'], month: ['day', 'week'], realtime: ['minute'], year: ['day', 'week', 'month'] }, shared: false, legacyTimeOnPageCutoff: '2022-01-01T00:00:00Z' } it('parses from dom string map correctly', () => { render() expect( parseSiteFromDataset(screen.getByTestId('stats-react-container').dataset) ).toEqual(expectedParsedSite) }) it('handles embedded', () => { render( ) expect( parseSiteFromDataset(screen.getByTestId('stats-react-container').dataset) ).toEqual({ ...expectedParsedSite, shared: true, embedded: true, background: '#foofoo' }) }) })