You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.1 KiB
34 lines
1.1 KiB
import QUnit from 'qunit';
|
|
import formatFiles from 'create-test-data!formats';
|
|
import {parseFormatForBytes} from '../src/format-parser.js';
|
|
import {doesCodecMatch, codecsFromFile} from './test-helpers.js';
|
|
|
|
const modules = {};
|
|
|
|
// seperate files into modules by extension
|
|
Object.keys(formatFiles).forEach((file) => {
|
|
const extension = file.split('.').pop();
|
|
|
|
modules[extension] = modules[extension] || [];
|
|
modules[extension].push(file);
|
|
});
|
|
|
|
QUnit.module('parseFormatForBytes', () => Object.keys(modules).forEach(function(module) {
|
|
const files = modules[module];
|
|
|
|
QUnit.module(module);
|
|
|
|
files.forEach((file) => QUnit.test(`${file} can be identified`, function(assert) {
|
|
const {codecs, container} = parseFormatForBytes(formatFiles[file]());
|
|
const expectedCodecs = codecsFromFile(file);
|
|
|
|
assert.equal(container, module, module);
|
|
Object.keys(expectedCodecs).forEach(function(type) {
|
|
const expectedCodec = expectedCodecs[type];
|
|
const codec = codecs[type];
|
|
|
|
assert.ok(doesCodecMatch(codec, expectedCodec), `${codec} is ${expectedCodec}`);
|
|
});
|
|
}));
|
|
}));
|