From c1c15e6075eeb4b25fac742a1063f51f903f32d1 Mon Sep 17 00:00:00 2001 From: myfreeer Date: Sun, 16 Jul 2023 15:09:19 +0800 Subject: [PATCH] mdn: bcd not loaded from new host Fix https://github.com/website-local/mdn-local/issues/890 --- src/mdn/process-url/redirect-download-link.ts | 9 +++++++++ .../process-url/redirect-download-link.spec.ts | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/mdn/process-url/redirect-download-link.ts b/src/mdn/process-url/redirect-download-link.ts index be20c31e..ec609fd6 100644 --- a/src/mdn/process-url/redirect-download-link.ts +++ b/src/mdn/process-url/redirect-download-link.ts @@ -79,6 +79,15 @@ export const redirectDownloadLink = (res: Resource): Resource => { .toString(); return res; } + // https://github.com/mdn/yari/commit/6e9fb23dad1571a463e06db7e280e6479b2582bd + // https://github.com/website-local/mdn-local/issues/890 + // 20230716 + if (path.startsWith('/bcd/api/v0/')) { + res.downloadLink = uri.search('') + .host('bcd.developer.mozilla.org') + .toString(); + return res; + } } return res; }; diff --git a/test/mdn/process-url/redirect-download-link.spec.ts b/test/mdn/process-url/redirect-download-link.spec.ts index 9c288a8e..940f6c69 100644 --- a/test/mdn/process-url/redirect-download-link.spec.ts +++ b/test/mdn/process-url/redirect-download-link.spec.ts @@ -175,4 +175,20 @@ describe('redirect-download-link', function () { expect(resource.downloadLink).toBe(url); } }); + + // https://github.com/mdn/yari/commit/6e9fb23dad1571a463e06db7e280e6479b2582bd + // https://github.com/website-local/mdn-local/issues/890 + // 20230716 + test('bcd.developer.mozilla.org', () => { + const urls = [ + 'https://developer.mozilla.org/bcd/api/v0/current/css.properties.grid.json' + ]; + for (const url of urls) { + const resource = res(url); + redirectDownloadLink(resource); + expect(resource.uri?.host()).toBe('developer.mozilla.org'); + expect(resource.downloadLink).toBe('https://bcd.developer.mozilla.org/bcd/api/v0/current/css.properties.grid.json'); + } + }); + });