Files
iD/test/spec/core/file_fetcher.js
2025-02-17 13:10:04 +01:00

45 lines
1.7 KiB
JavaScript

describe('iD.coreFileFetcher', function() {
describe('#fileMap', function() {
it('gets the fileMap', function() {
var data = iD.coreFileFetcher();
expect(data.fileMap()).to.be.a('object');
});
it('sets the fileMap', function() {
var data = iD.coreFileFetcher();
var files = { 'intro_graph': 'data/intro_graph.min.json' };
expect(data.fileMap(files)).to.be.ok;
});
});
describe('#get', function() {
it('returns a promise resolved if we already have the data', async () => {
var data = iD.coreFileFetcher();
data.cache().test = { hello: 'world' };
var prom = data.get('test');
expect(prom).to.be.a('promise');
data = await prom;
expect(data).to.be.a('object');
expect(data.hello).to.eql('world');
});
it('returns a promise rejected if we can not get the data', async () => {
var data = iD.coreFileFetcher().assetPath('../dist/');
var prom = data.get('wat');
await expect(prom).rejects.toThrow(/^Unknown data file/);
});
it('returns a promise to fetch data if we do not already have the data', async () => {
var files = { 'intro_graph': 'data/intro_graph.min.json' };
var data = iD.coreFileFetcher().assetPath('../dist/').fileMap(files);
var prom = data.get('intro_graph');
expect(prom).to.be.a('promise');
data = await prom;
expect(data).to.be.a('object');
expect(data.n2061.tags.name).to.eql('Three Rivers City Hall');
});
});
});