Skip to content

Commit

Permalink
Merge branch 'develop' into enhancement/#8157-follow-up.
Browse files Browse the repository at this point in the history
  • Loading branch information
nfmohit committed Jun 11, 2024
2 parents 8af6772 + e9c3f4a commit c622db9
Show file tree
Hide file tree
Showing 47 changed files with 530 additions and 128 deletions.
4 changes: 2 additions & 2 deletions assets/js/components/KeyMetrics/ChangeMetricsLink.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ export default function ChangeMetricsLink() {
<Link
secondary
linkButton
className="googlesitekit-km-change-metrics-cta"
className="googlesitekit-widget-area__cta-link"
onClick={ openMetricsSelectionPanel }
leadingIcon={ <PencilIcon width={ 22 } height={ 22 } /> }
>
{ __( 'Change Metrics', 'google-site-kit' ) }
{ __( 'Change metrics', 'google-site-kit' ) }
</Link>
<SetupCompletedSurveyTrigger />
</Fragment>
Expand Down
2 changes: 1 addition & 1 deletion assets/js/components/KeyMetrics/ChangeMetricsLink.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ describe( 'ChangeMetricsLink', () => {

const button = queryByRole( 'button' );
expect( button ).toBeInTheDocument();
expect( button ).toHaveTextContent( 'Change Metrics' );
expect( button ).toHaveTextContent( 'Change metrics' );
} );

it( 'should set UI store key correctly when button is clicked', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,9 @@ describe( 'MetricsSelectionPanel', () => {
slug: 'analytics-4',
active: true,
connected: true,
// Module is shareable after connected, but by default in fixtures it is false.
// This updates on the backend, but here value is pulled from fixtures.
shareable: true,
},
] );

Expand Down
2 changes: 2 additions & 0 deletions assets/js/components/ModalDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ function ModalDialog( {
className = '',
dialogActive = false,
handleDialog = null,
onClose = null,
title = null,
provides,
handleConfirm,
Expand All @@ -64,6 +65,7 @@ function ModalDialog( {
return (
<Dialog
open={ dialogActive }
onClose={ onClose }
aria-describedby={ hasProvides ? describedByID : undefined }
tabIndex="-1"
className={ classnames( className, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,13 @@ describe( 'AnalyticsAndAdSenseAccountsDetectedAsLinkedOverlayNotification', () =
slug: 'adsense',
active: true,
connected: true,
shareable: true,
},
{
slug: 'analytics-4',
active: true,
connected: true,
shareable: true,
},
] );
provideUserAuthentication( registry );
Expand Down
4 changes: 2 additions & 2 deletions assets/js/components/SelectionPanel/SelectionPanelFooter.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ import { safelySort } from '../../util';
export default function SelectionPanelFooter( {
savedItemSlugs = [],
selectedItemSlugs = [],
saveSettings,
saveSettings = () => {},
saveError,
itemLimitError,
minSelectedItemCount = 0,
maxSelectedItemCount = 0,
isBusy,
onSaveSuccess,
onSaveSuccess = () => {},
onCancel = () => {},
isOpen,
closePanel = () => {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ export default {
active: true,
connected: true,
},
{
slug: 'ads',
active: true,
connected: true,
},
] );

registry.dispatch( MODULES_ADS ).receiveGetSettings( {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export default function ConfirmDisableConversionTrackingDialog( {
subtitle={ subtitle }
handleConfirm={ onConfirm }
handleDialog={ onCancel }
onClose={ onCancel }
provides={ provides }
confirmButton={ __( 'Disable', 'google-site-kit' ) }
danger
Expand Down
7 changes: 5 additions & 2 deletions assets/js/components/settings/SettingsApp.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ describe( 'SettingsApp', () => {
expect( global.location.hash ).toEqual( '#/connected-services' );
} );

it( 'should switch to "/connect-more-services" route when corresponding tab is clicked.', () => {
const { getAllByRole } = render( <SettingsApp />, {
it( 'should switch to "/connect-more-services" route when corresponding tab is clicked.', async () => {
const { getAllByRole, waitForRegistry } = render( <SettingsApp />, {
history,
registry,
viewContext: VIEW_CONTEXT_SETTINGS,
Expand All @@ -146,6 +146,9 @@ describe( 'SettingsApp', () => {
fireEvent.click(
getAllByRole( 'tab' )[ getTabID( 'connect-more-services' ) ]
);

await waitForRegistry();

expect( global.location.hash ).toEqual( '#/connect-more-services' );
} );

Expand Down
1 change: 1 addition & 0 deletions assets/js/googlesitekit/datastore/user/key-metrics.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ describe( 'core/user key metrics', () => {
slug: 'analytics-4',
active: true,
connected: true,
shareable: true,
},
] );

Expand Down
1 change: 0 additions & 1 deletion assets/js/googlesitekit/datastore/user/permissions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,6 @@ describe( 'core/user authentication', () => {

expect( viewableModules ).toEqual( [
'search-console',
'analytics-4',
'pagespeed-insights',
] );
} );
Expand Down
115 changes: 52 additions & 63 deletions assets/js/googlesitekit/modules/datastore/__fixtures__/list.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
"homepage": "https://www.google.com/webmasters/verification/home",
"internal": true,
"order": 0,
"forceActive": true,
"recoverable": false,
"shareable": false,
"active": true,
"connected": true,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": true,
"shareable": true,
"recoverable": false
"owner": null
},
{
"slug": "search-console",
Expand All @@ -22,68 +22,46 @@
"homepage": "https://search.google.com/search-console",
"internal": false,
"order": 1,
"forceActive": true,
"recoverable": false,
"shareable": true,
"active": true,
"connected": true,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": true,
"shareable": true,
"recoverable": false
"owner": null
},
{
"slug": "adsense",
"name": "AdSense",
"description": "Earn money by placing ads on your website. It’s free and easy.",
"homepage": "https://adsense.google.com/start?source=site-kit&url=http://example.com",
"slug": "ads",
"name": "Ads",
"description": "Track conversions for your existing Google Ads campaigns",
"homepage": "https://google.com/ads",
"internal": false,
"order": 2,
"order": 1,
"forceActive": false,
"recoverable": false,
"shareable": false,
"active": false,
"connected": false,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": false,
"shareable": true,
"recoverable": false,
"features": [
"Monetize your website",
"Intelligent, automatic ad placement"
]
"owner": null
},
{
"slug": "pagespeed-insights",
"name": "PageSpeed Insights",
"description": "Google PageSpeed Insights gives you metrics about performance, accessibility, SEO and PWA.",
"homepage": "https://pagespeed.web.dev",
"slug": "adsense",
"name": "AdSense",
"description": "Earn money by placing ads on your website. It’s free and easy.",
"homepage": "https://adsense.google.com/start?source=site-kit&url=https://example.com",
"internal": false,
"order": 4,
"active": false,
"connected": true,
"dependencies": [],
"dependants": [],
"owner": null,
"order": 2,
"forceActive": false,
"shareable": true,
"recoverable": false,
"features": [ "Website performance reports for mobile and desktop" ]
},
{
"slug": "tagmanager",
"name": "Tag Manager",
"description": "Tag Manager creates an easy to manage way to create tags on your site without updating code.",
"homepage": "https://tagmanager.google.com/",
"internal": false,
"order": 6,
"shareable": false,
"active": false,
"connected": false,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": false,
"shareable": true,
"recoverable": false,
"features": [ "Create tags without updating code" ]
"owner": null
},
{
"slug": "analytics-4",
Expand All @@ -92,34 +70,45 @@
"homepage": "https://analytics.google.com/analytics/web",
"internal": false,
"order": 3,
"forceActive": false,
"recoverable": false,
"shareable": false,
"active": false,
"connected": false,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": false,
"shareable": true,
"recoverable": false,
"features": [
"Audience overview",
"Top pages",
"Top acquisition channels"
]
"owner": null
},
{
"slug": "ads",
"name": "Ads",
"description": "Track conversions for your existing Google Ads campaigns.",
"homepage": "https://google.com/ads",
"slug": "pagespeed-insights",
"name": "PageSpeed Insights",
"description": "Google PageSpeed Insights gives you metrics about performance, accessibility, SEO and PWA",
"homepage": "https://pagespeed.web.dev",
"internal": false,
"order": 1,
"order": 4,
"forceActive": false,
"recoverable": false,
"shareable": true,
"active": true,
"connected": true,
"dependencies": [],
"dependants": [],
"owner": null,
"forceActive": true,
"owner": null
},
{
"slug": "tagmanager",
"name": "Tag Manager",
"description": "Tag Manager creates an easy to manage way to create tags on your site without updating code",
"homepage": "https://tagmanager.google.com/",
"internal": false,
"order": 6,
"forceActive": false,
"recoverable": false,
"shareable": false,
"recoverable": false
"active": false,
"connected": false,
"dependencies": [],
"dependants": [],
"owner": null
}
]
18 changes: 13 additions & 5 deletions assets/js/googlesitekit/modules/datastore/modules.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1655,19 +1655,27 @@ describe( 'core/modules modules', () => {
} );

it( 'returns features when modules are loaded', () => {
registry.dispatch( CORE_MODULES ).receiveGetModules( FIXTURES );
provideModules( registry );
provideModuleRegistrations( registry, [
{
slug: 'analytics-4',
features: [ 'feature one', 'feature two' ],
},
] );

const featuresLoaded = registry
.select( CORE_MODULES )
.getModuleFeatures( 'analytics-4' );

expect( featuresLoaded ).toMatchObject(
fixturesKeyValue[ 'analytics-4' ].features
);
expect( featuresLoaded ).toStrictEqual( [
'feature one',
'feature two',
] );
} );

it( 'returns an empty object when requesting features for a non-existent module', () => {
registry.dispatch( CORE_MODULES ).receiveGetModules( FIXTURES );
provideModules( registry );
provideModuleRegistrations( registry );

const featuresLoaded = registry
.select( CORE_MODULES )
Expand Down
6 changes: 5 additions & 1 deletion assets/js/googlesitekit/widgets/register-defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ import {
import AddMetricCTATile from '../../components/KeyMetrics/AddMetricCTATile';
import KeyMetricsNewBadge from '../../components/KeyMetrics/KeyMetricsNewBadge';
import ConnectGA4CTAWidget from '../../modules/analytics-4/components/widgets/ConnectGA4CTAWidget';
import { AudienceAreaFooter } from '../../modules/analytics-4/components/audience-segmentation/dashboard';
import {
AudienceAreaFooter,
ChangeGroupsLink,
} from '../../modules/analytics-4/components/audience-segmentation/dashboard';
import { isFeatureEnabled } from '../../features';

const { ...ADDITIONAL_WIDGET_CONTEXTS } = WIDGET_CONTEXTS;
Expand Down Expand Up @@ -152,6 +155,7 @@ export function registerDefaults( widgetsAPI ) {
hasNewBadge: true,
style: WIDGET_AREA_STYLES.BOXES,
priority: 2,
CTA: ChangeGroupsLink,
Footer: AudienceAreaFooter,
},
CONTEXT_MAIN_DASHBOARD_TRAFFIC
Expand Down
Loading

0 comments on commit c622db9

Please sign in to comment.