assertResourcesLoadedCorrectly(loadedResources, expectedResourcePaths) {
        const actualResources = [];

        for (let resource of loadedResources) {
            const url = resource.response.url();

            // skip the .html page as a resource
            if (url.includes('testing.html')) {
                continue;
            }

            // skip the favicon as a resource
            if (url.includes('favicon.ico')) {
                continue;
            }

            actualResources.push(url);
        }

        // prefix each expected resource with its public path
        // needed when the public path is a CDN
        const expectedResources = expectedResourcePaths.map((path) => {
            // if we've explicitly passed a full URL in for testing, ignore that
            if (path.startsWith('http://')) {
                return path;
            }

            return this.webpackConfig.getRealPublicPath() + path;
        });

        expect(actualResources).to.have.all.members(expectedResources);
    }
@param {Array<{ response: import('puppeteer').HTTPResponse}>} loadedResources
@param {Array}   expectedResourcePaths Array of expected resources, but just
                 their short filenames - e.g. main.css
                 (i.e. without the public path)
@returns {void}