From 5f7e9c47e01116f6ec74b33770f480404680956a Mon Sep 17 00:00:00 2001 From: Ming-jun Lu <40516784+mingjunlu@users.noreply.github.com> Date: Tue, 26 Mar 2024 22:11:44 +0800 Subject: [PATCH] fix(sitemap): fix missing base path in `sitemap-index.xml` (#10557) * fix(sitemap): fix missing base path in `sitemap-index.xml` * test(sitemap): update test cases in `base-path.test.js` * chore: add changeset --- .changeset/fluffy-cups-invent.md | 5 ++++ packages/integrations/sitemap/src/index.ts | 1 + .../sitemap/test/base-path.test.js | 24 ++++++++++++++----- 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 .changeset/fluffy-cups-invent.md diff --git a/.changeset/fluffy-cups-invent.md b/.changeset/fluffy-cups-invent.md new file mode 100644 index 0000000000..0ea588ef1e --- /dev/null +++ b/.changeset/fluffy-cups-invent.md @@ -0,0 +1,5 @@ +--- +"@astrojs/sitemap": patch +--- + +Fixes an issue where the base path is missing in `sitemap-index.xml`. diff --git a/packages/integrations/sitemap/src/index.ts b/packages/integrations/sitemap/src/index.ts index 9b1ea5ddb8..b0548d8f11 100644 --- a/packages/integrations/sitemap/src/index.ts +++ b/packages/integrations/sitemap/src/index.ts @@ -170,6 +170,7 @@ const createPlugin = (options?: SitemapOptions): AstroIntegration => { await simpleSitemapAndIndex({ hostname: finalSiteUrl.href, destinationDir: destDir, + publicBasePath: config.base, sourceData: urlData, limit: entryLimit, gzip: false, diff --git a/packages/integrations/sitemap/test/base-path.test.js b/packages/integrations/sitemap/test/base-path.test.js index 0417e4e2bf..df3cadcc4e 100644 --- a/packages/integrations/sitemap/test/base-path.test.js +++ b/packages/integrations/sitemap/test/base-path.test.js @@ -16,9 +16,15 @@ describe('URLs with base path', () => { }); it('Base path is concatenated correctly', async () => { - const data = await readXML(fixture.readFile('/client/sitemap-0.xml')); - const urls = data.urlset.url; - assert.equal(urls[0].loc[0], 'http://example.com/base/one/'); + const [sitemapZero, sitemapIndex] = await Promise.all([ + readXML(fixture.readFile('/client/sitemap-0.xml')), + readXML(fixture.readFile('/client/sitemap-index.xml')), + ]); + assert.equal(sitemapZero.urlset.url[0].loc[0], 'http://example.com/base/one/'); + assert.equal( + sitemapIndex.sitemapindex.sitemap[0].loc[0], + 'http://example.com/base/sitemap-0.xml' + ); }); }); @@ -32,9 +38,15 @@ describe('URLs with base path', () => { }); it('Base path is concatenated correctly', async () => { - const data = await readXML(fixture.readFile('/sitemap-0.xml')); - const urls = data.urlset.url; - assert.equal(urls[0].loc[0], 'http://example.com/base/123/'); + const [sitemapZero, sitemapIndex] = await Promise.all([ + readXML(fixture.readFile('/sitemap-0.xml')), + readXML(fixture.readFile('/sitemap-index.xml')), + ]); + assert.equal(sitemapZero.urlset.url[0].loc[0], 'http://example.com/base/123/'); + assert.equal( + sitemapIndex.sitemapindex.sitemap[0].loc[0], + 'http://example.com/base/sitemap-0.xml' + ); }); }); });