blob: 4831ace679fdc3f1facc74f4cd5e0001c7682288 [file] [log] [blame]
import './index';
import '../gold-scaffold-sk';
import { $$ } from 'common-sk/modules/dom';
import fetchMock from 'fetch-mock';
import {
canvaskit,
fakeNow,
gm,
svg,
trstatus,
} from './demo_data';
import { delay } from '../demo_util';
import { testOnlySetSettings } from '../settings';
testOnlySetSettings({
title: 'Skia Public',
defaultCorpus: 'gm',
baseRepoURL: 'https://skia.googlesource.com/skia.git',
});
// Set up RPC failure simulation.
const getSimulateRpcFailure = () => sessionStorage.getItem('simulateRpcFailure') === 'true';
const setSimulateRpcFailure = (val) => sessionStorage.setItem('simulateRpcFailure', val);
$$('#simulate-rpc-failure').checked = getSimulateRpcFailure();
$$('#simulate-rpc-failure').addEventListener('change', (e) => {
setSimulateRpcFailure(e.target.checked);
});
const fakeRpcDelayMillis = 300;
function byBlame(response) {
if (getSimulateRpcFailure()) {
return 500; // Fake an internal server error.
}
return delay(response, fakeRpcDelayMillis);
}
Date.now = () => fakeNow;
fetchMock.get('/json/v1/byblame?query=source_type%3Dcanvaskit', () => byBlame(canvaskit));
fetchMock.get('/json/v1/byblame?query=source_type%3Dgm', () => byBlame(gm));
fetchMock.get('/json/v1/byblame?query=source_type%3Dsvg', () => byBlame(svg));
fetchMock.get('/json/v1/trstatus', () => {
if ($$('#simulate-rpc-failure').checked) {
return 500; // Fake an internal server error.
}
return delay(trstatus, fakeRpcDelayMillis);
});
// By adding these elements after all the fetches are mocked out, they should load ok.
const newScaf = document.createElement('gold-scaffold-sk');
newScaf.setAttribute('testing_offline', 'true');
const body = $$('body');
body.insertBefore(newScaf, body.childNodes[0]); // Make it the first element in body.
const page = document.createElement('byblame-page-sk');
newScaf.appendChild(page);