Source: testing/AssetMetadataLoader.js

import { ResourceLoader } from "jsdom"

/**
 * An JSDOM resource loader based on BrutRB asset metadata.
 *
 * @memberof testing
 */
class AssetMetadataLoader extends ResourceLoader {
  constructor(assetMetadata) {
    super()
    this.assetMetadata = assetMetadata
  }

  fetch(url,options) {
    const parsedURL = new URL(url)
    const jsContents = this.assetMetadata.fileContainingScriptURL(parsedURL.pathname)
    if (jsContents) {
      return Promise.resolve(jsContents)
    }
    else {
      return super.fetch(url,options)
    }
  }
}
export default AssetMetadataLoader