diff --git a/src/cwv/handler.js b/src/cwv/handler.js index 78d255b3..2034eb04 100644 --- a/src/cwv/handler.js +++ b/src/cwv/handler.js @@ -11,17 +11,25 @@ */ import RUMAPIClient from '@adobe/spacecat-shared-rum-api-client'; +import URI from 'urijs'; +import { hasText } from '@adobe/spacecat-shared-utils'; import { getRUMDomainkey } from '../support/utils.js'; import { AuditBuilder } from '../common/audit-builder.js'; const DAILY_THRESHOLD = 1000; const INTERVAL = 7; // days +export function getAuditUrl(baseURL) { + const uri = new URI(baseURL); + return hasText(uri.subdomain()) ? baseURL.replace(/https?:\/\//, '') : baseURL.replace(/https?:\/\//, 'www.'); +} + export async function CWVRunner(auditUrl, context, site) { const rumAPIClient = RUMAPIClient.createFrom(context); const domainkey = await getRUMDomainkey(site.getBaseURL(), context); + const finalUrl = getAuditUrl(auditUrl); const options = { - domain: auditUrl, + domain: finalUrl, domainkey, interval: INTERVAL, granularity: 'hourly', @@ -36,10 +44,11 @@ export async function CWVRunner(auditUrl, context, site) { return { auditResult, - fullAuditRef: auditUrl, + fullAuditRef: finalUrl, }; } export default new AuditBuilder() + .withUrlResolver((site) => site.getBaseURL()) .withRunner(CWVRunner) .build(); diff --git a/test/audits/cwv.test.js b/test/audits/cwv.test.js index 28080c1c..664cef80 100644 --- a/test/audits/cwv.test.js +++ b/test/audits/cwv.test.js @@ -17,7 +17,7 @@ import sinon from 'sinon'; import sinonChai from 'sinon-chai'; import nock from 'nock'; import { createSite } from '@adobe/spacecat-shared-data-access/src/models/site.js'; -import { CWVRunner } from '../../src/cwv/handler.js'; +import { CWVRunner, getAuditUrl } from '../../src/cwv/handler.js'; import { rumData } from '../fixtures/rum-data.js'; use(sinonChai); @@ -59,7 +59,7 @@ describe('Index Tests', () => { }); it('cwv audit runs rum api client cwv query', async () => { - const result = await CWVRunner('www.spacecat.com', context, site); + const result = await CWVRunner('https://spacecat.com', context, site); expect(result).to.deep.equal({ auditResult: { cwv: rumData.filter((data) => data.pageviews >= 7000), @@ -70,4 +70,13 @@ describe('Index Tests', () => { fullAuditRef: auditUrl, }); }); + + it('audit url calculated correctly', async () => { + expect(getAuditUrl('http://spacecat.com')).to.equal('www.spacecat.com'); + expect(getAuditUrl('https://spacecat.com')).to.equal('www.spacecat.com'); + expect(getAuditUrl('http://www.spacecat.com')).to.equal('www.spacecat.com'); + expect(getAuditUrl('https://www.spacecat.com')).to.equal('www.spacecat.com'); + expect(getAuditUrl('http://blog.spacecat.com')).to.equal('blog.spacecat.com'); + expect(getAuditUrl('https://blog.spacecat.com')).to.equal('blog.spacecat.com'); + }); });