@@ -8,6 +8,7 @@ import { gzipSync } from "node:zlib";
88import preloadedContexts from "./contexts.ts" ;
99import cidV1Context from "./contexts/cid-v1.json" with { type : "json" } ;
1010import { getDocumentLoader , getRemoteDocument } from "./docloader.ts" ;
11+ import jsonld from "./jsonld.ts" ;
1112import { FetchError } from "./request.ts" ;
1213import { UrlError } from "./url.ts" ;
1314
@@ -367,6 +368,47 @@ test("getDocumentLoader()", async (t) => {
367368 deepStrictEqual ( fetchMock . callHistory . calls ( url ) . length , 0 ) ;
368369 } ) ;
369370
371+ // A Codeberg Pages outage must not prevent loading or expanding FEP-6757.
372+ // See: https://github.com/fedify-dev/fedify/issues/1211
373+ fetchMock . get ( "https://w3id.org/fep/6757" , { status : 502 } ) ;
374+ await t . test ( "preloaded FEP-6757 context" , async ( ) => {
375+ const url = "https://w3id.org/fep/6757" ;
376+ deepStrictEqual ( await fetchDocumentLoader ( url ) , {
377+ contextUrl : null ,
378+ documentUrl : url ,
379+ document : {
380+ "@context" : {
381+ license : {
382+ "@id" : "http://purl.org/dc/terms/license" ,
383+ "@type" : "@id" ,
384+ } ,
385+ preferredLicense : {
386+ "@id" : "https://w3id.org/fep/6757#preferredLicense" ,
387+ "@type" : "@id" ,
388+ } ,
389+ } ,
390+ } ,
391+ } ) ;
392+ deepStrictEqual (
393+ await jsonld . expand ( {
394+ "@context" : [ "https://www.w3.org/ns/activitystreams" , url ] ,
395+ type : "Person" ,
396+ license : "https://creativecommons.org/licenses/by/4.0/" ,
397+ preferredLicense : "https://creativecommons.org/licenses/by-nc/4.0/" ,
398+ } , { documentLoader : fetchDocumentLoader } ) ,
399+ [ {
400+ "@type" : [ "https://www.w3.org/ns/activitystreams#Person" ] ,
401+ "http://purl.org/dc/terms/license" : [ {
402+ "@id" : "https://creativecommons.org/licenses/by/4.0/" ,
403+ } ] ,
404+ "https://w3id.org/fep/6757#preferredLicense" : [ {
405+ "@id" : "https://creativecommons.org/licenses/by-nc/4.0/" ,
406+ } ] ,
407+ } ] ,
408+ ) ;
409+ deepStrictEqual ( fetchMock . callHistory . calls ( url ) . length , 0 ) ;
410+ } ) ;
411+
370412 await t . test ( "deny non-HTTP/HTTPS" , async ( ) => {
371413 await rejects (
372414 ( ) => fetchDocumentLoader ( "ftp://localhost" ) ,
0 commit comments