Skip to content

Commit

Permalink
Merge branch 'develop' into enhancement/9149-onboarding-state-sync-im…
Browse files Browse the repository at this point in the history
…prove.
  • Loading branch information
ankitrox committed Oct 10, 2024
2 parents b86a332 + 14f36cc commit 327ce7f
Show file tree
Hide file tree
Showing 44 changed files with 792 additions and 226 deletions.
11 changes: 11 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,17 @@
"off"
]
}
},
{
"files": [
"webpack/*",
"**/__factories__/*",
"*.stories.js",
"*.test.js"
],
"rules": {
"sitekit/no-direct-date": "off"
}
}
],
"plugins": [
Expand Down
4 changes: 4 additions & 0 deletions assets/js/components/GoogleChart/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,8 @@ export default function GoogleChart( props ) {

// Only use markers if the date is within the current date range.
const dateMarkersInRange = dateMarkers.filter( ( dateMarker ) => {
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
return isDateWithinRange( new Date( dateMarker.date ) );
} );

Expand All @@ -260,6 +262,8 @@ export default function GoogleChart( props ) {

// Add the dotted line and tooltip for each date marker.
dateMarkersInRange.forEach( ( dateMarker, index ) => {
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
const dateFromMarker = new Date( dateMarker.date );

const chartLine = document.getElementById(
Expand Down
3 changes: 3 additions & 0 deletions assets/js/components/Header.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import {
provideModules,
provideUserAuthentication,
provideUserInfo,
waitForTimeouts,
} from '../../../tests/js/test-utils';
import { VIEW_CONTEXT_MAIN_DASHBOARD } from '../googlesitekit/constants';
import { CORE_USER } from '../googlesitekit/datastore/user/constants';
Expand Down Expand Up @@ -82,5 +83,7 @@ describe( 'Header', () => {
expect( container.firstChild ).toHaveClass(
'googlesitekit-header--has-subheader'
);

await act( () => waitForTimeouts( 30 ) );
} );
} );
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ export default function BannerNotification( props ) {
const { value: dismissed } = await getItem( cacheKeyDismissed );

if ( dismissed ) {
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
const expiration = new Date( dismissed );

expiration.setSeconds(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,10 @@ export default {
};
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( accountSummaries );
.receiveGetAccountSummaries( {
accountSummaries,
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetWebDataStreamsBatch( datastreams, {
Expand Down
5 changes: 5 additions & 0 deletions assets/js/modules/adsense/util/data-mock.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,9 +257,14 @@ export function getAdSenseMockResponse( args ) {
const ops = [
// Converts range number to a date string.
map( ( item ) => {
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
const updatedMilliseconds = new Date( startDate ).setDate(
startDate.getDate() + item
);

// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
return getDateString( new Date( updatedMilliseconds ) );
} ),
// Add dimension and metric values.
Expand Down
2 changes: 2 additions & 0 deletions assets/js/modules/adsense/util/site-stats-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ export function getSiteStatsDataForGoogleChart(
];

const nextDate = ( date ) => {
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
const next = new Date( date );
next.setDate( date.getDate() + 1 );
return next;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -641,7 +641,7 @@ describe( 'AudienceSegmentationSetupCTAWidget', () => {
getByRole( 'button', { name: /Enabling groups/i } )
).toBeInTheDocument();

await act( () => waitForTimeouts( 30 ) );
await act( () => waitForTimeouts( 100 ) );
} );

describe( 'AudienceErrorModal', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ describe( 'AudienceTilesWidget', () => {
)
).toBeInTheDocument();

await act( () => waitForTimeouts( 50 ) );
await act( () => waitForTimeouts( 100 ) );
} );

it( 'should show the "no audiences" banner when there is no matching audience', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,10 @@ describe( 'AccountCreate', () => {
} );

registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetSettings( {} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( [] );
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: [],
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.finishResolution( 'getAccountSummaries', [] );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ const setupEmptyRegistry = ( registry ) => {
registry.dispatch( MODULES_ANALYTICS_4 ).setSettings( {} );
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetExistingTag( null );

registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( [] );
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: [],
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.finishResolution( 'getAccountSummaries', [] );
Expand All @@ -73,7 +76,7 @@ describe( 'AccountSelect', () => {
// Note: we do length + 1 here because there should also be an item for
// "Set up a new account".
expect( listItems ).toHaveLength(
fixtures.accountSummaries.length + 1
fixtures.accountSummaries.accountSummaries.length + 1
);
} );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ import {
provideUserAuthentication,
} from '../../../../../../tests/js/test-utils';

const accountID = fixtures.accountSummaries[ 1 ]._id;
const properties = fixtures.accountSummaries[ 1 ].propertySummaries;
const accountID = fixtures.accountSummaries.accountSummaries[ 1 ]._id;
const properties =
fixtures.accountSummaries.accountSummaries[ 1 ].propertySummaries;
const propertyIDs = properties.map( ( { _id } ) => _id );

const setupRegistry = ( registry ) => {
Expand Down Expand Up @@ -86,12 +87,15 @@ const setupEmptyRegistry = ( registry ) => {
dispatch( MODULES_ANALYTICS_4 ).receiveGetSettings( {} );
dispatch( MODULES_ANALYTICS_4 ).setAccountID( accountID );

dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries(
fixtures.accountSummaries.map( ( account ) => ( {
...account,
propertySummaries: [],
} ) )
);
dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: fixtures.accountSummaries.accountSummaries.map(
( account ) => ( {
...account,
propertySummaries: [],
} )
),
nextPageToken: null,
} );
dispatch( MODULES_ANALYTICS_4 ).finishResolution(
'getAccountSummaries',
[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ export default function UserCountGraph( props ) {
? [
{
date: getDateString(
// Valid use of `new Date()` with an argument.
// eslint-disable-next-line sitekit/no-direct-date
new Date( propertyCreateTime )
),
text: __(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ import * as fixtures from '../../datastore/__fixtures__';
import { MODULES_ANALYTICS_4 } from '../../datastore/constants';
import PropertyOrWebDataStreamNotAvailableError from './PropertyOrWebDataStreamNotAvailableError';

const accountID = fixtures.accountSummaries[ 1 ]._id;
const properties = fixtures.accountSummaries[ 1 ].propertySummaries;
const accountID = fixtures.accountSummaries.accountSummaries[ 1 ]._id;
const properties =
fixtures.accountSummaries.accountSummaries[ 1 ].propertySummaries;
const propertyID = properties[ 0 ]._id;
const measurementID =
fixtures.webDataStreamsBatch[ propertyID ][ 0 ].webStreamData.measurementId; // eslint-disable-line sitekit/acronym-case
Expand Down Expand Up @@ -85,7 +86,7 @@ describe( 'PropertyOrWebDataStreamNotAvailableError', () => {
expect( container ).toBeEmptyDOMElement();
} );

it( 'should not render when Web Data Streams are not loaded yet', () => {
it( 'should not render when Web Data Streams are not loaded yet', async () => {
freezeFetch(
new RegExp(
'^/google-site-kit/v1/modules/analytics-4/data/webdatastreams'
Expand All @@ -96,42 +97,48 @@ describe( 'PropertyOrWebDataStreamNotAvailableError', () => {
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( fixtures.accountSummaries );

const { container } = render(
const { container, waitForRegistry } = render(
<PropertyOrWebDataStreamNotAvailableError
hasModuleAccess
isDisabled={ false }
/>,
{ registry }
);

await waitForRegistry();

expect( container ).toBeEmptyDOMElement();
} );

it( 'should not render when selected property and Web Data Stream are available', () => {
it( 'should not render when selected property and Web Data Stream are available', async () => {
provideGA4PropertyAndWebDataStream( registry );

const { container } = render(
const { container, waitForRegistry } = render(
<PropertyOrWebDataStreamNotAvailableError
hasModuleAccess
isDisabled={ false }
/>,
{ registry }
);

await waitForRegistry();

expect( container ).toBeEmptyDOMElement();
} );

it( 'should not render when user does not have module access', () => {
it( 'should not render when user does not have module access', async () => {
provideGA4PropertyAndWebDataStream( registry );

const { container } = render(
const { container, waitForRegistry } = render(
<PropertyOrWebDataStreamNotAvailableError
hasModuleAccess={ false }
isDisabled={ false }
/>,
{ registry }
);

await waitForRegistry();

expect( container ).toBeEmptyDOMElement();
} );

Expand All @@ -149,7 +156,7 @@ describe( 'PropertyOrWebDataStreamNotAvailableError', () => {
expect( container ).toBeEmptyDOMElement();
} );

it( 'should render error message when selected Web Data Stream is not available', () => {
it( 'should render error message when selected Web Data Stream is not available', async () => {
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( fixtures.accountSummaries );
Expand All @@ -160,37 +167,42 @@ describe( 'PropertyOrWebDataStreamNotAvailableError', () => {
}
);

const { container } = render(
const { container, waitForRegistry } = render(
<PropertyOrWebDataStreamNotAvailableError
hasModuleAccess
isDisabled={ false }
/>,
{ registry }
);

await waitForRegistry();

expect( container ).toHaveTextContent(
`The previously selected web data stream with measurement ID ${ measurementID } is no longer available.`
);
} );

it( 'should render error message when selected property is not available', () => {
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( [] );
it( 'should render error message when selected property is not available', async () => {
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: [],
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetWebDataStreamsBatch( fixtures.webDataStreamsBatch, {
propertyIDs: [ propertyID ],
} );

const { container } = render(
const { container, waitForRegistry } = render(
<PropertyOrWebDataStreamNotAvailableError
hasModuleAccess
isDisabled={ false }
/>,
{ registry }
);

await waitForRegistry();

expect( container ).toHaveTextContent(
`The previously selected property with ID ${ propertyID } is no longer available.`
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import SettingsEnhancedMeasurementSwitch from './SettingsEnhancedMeasurementSwit

describe( 'SettingsEnhancedMeasurementSwitch', () => {
const { webDataStreams, accountSummaries } = fixtures;
const accounts = accountSummaries;
const accounts = accountSummaries.accountSummaries;
const properties = accounts[ 1 ].propertySummaries;
const accountID = accounts[ 1 ]._id;
const propertyID = properties[ 0 ]._id;
Expand Down Expand Up @@ -68,9 +68,10 @@ describe( 'SettingsEnhancedMeasurementSwitch', () => {
webDataStreamID,
} );

registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( accounts );
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: accounts,
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.finishResolution( 'getAccountSummaries', [] );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const {
webDataStreamsBatch,
defaultEnhancedMeasurementSettings,
} = fixtures;
const accounts = accountSummaries;
const accounts = accountSummaries.accountSummaries;
const properties = accounts[ 1 ].propertySummaries;
const accountID = accounts[ 1 ]._id;
const propertyID = properties[ 0 ]._id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import WithRegistrySetup from '../../../../../../tests/js/WithRegistrySetup';
import * as fixtures from '../../datastore/__fixtures__';

const { accountSummaries, webDataStreamsBatch, googleTagSettings } = fixtures;
const accounts = accountSummaries;
const accounts = accountSummaries.accountSummaries;
const properties = accounts[ 1 ].propertySummaries;
const accountID = accounts[ 1 ]._id;
const propertyID = properties[ 0 ]._id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ describe( 'SetupEnhancedMeasurementSwitch', () => {
let registry;

const { webDataStreams, accountSummaries } = fixtures;
const accounts = accountSummaries;
const accounts = accountSummaries.accountSummaries;
const properties = accounts[ 1 ].propertySummaries;
const accountID = accounts[ 1 ]._id;
const propertyID = properties[ 0 ]._id;
Expand Down Expand Up @@ -60,9 +60,10 @@ describe( 'SetupEnhancedMeasurementSwitch', () => {
webDataStreamID,
} );

registry
.dispatch( MODULES_ANALYTICS_4 )
.receiveGetAccountSummaries( accounts );
registry.dispatch( MODULES_ANALYTICS_4 ).receiveGetAccountSummaries( {
accountSummaries: accounts,
nextPageToken: null,
} );
registry
.dispatch( MODULES_ANALYTICS_4 )
.finishResolution( 'getAccountSummaries', [] );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import { VIEW_CONTEXT_MAIN_DASHBOARD } from '../../../../googlesitekit/constants
import { CORE_SITE } from '../../../../googlesitekit/datastore/site/constants';

const { accountSummaries, webDataStreamsBatch } = fixtures;
const accounts = accountSummaries;
const accounts = accountSummaries.accountSummaries;
const properties = accounts[ 1 ].propertySummaries;
const accountID = accounts[ 1 ]._id;
const propertyID = properties[ 0 ]._id;
Expand Down
Loading

0 comments on commit 327ce7f

Please sign in to comment.