Sha256: b97bfcd05d34801571f3640b9c502f0f0b5385ce82e30c182d93205dc353b5cb
Contents?: true
Size: 1.29 KB
Versions: 3
Compression:
Stored size: 1.29 KB
Contents
import { tokenize } from 'simple-html-tokenizer'; function generateTokens(containerOrHTML) { if (typeof containerOrHTML === 'string') { return { tokens: tokenize(containerOrHTML), html: containerOrHTML, }; } else { return { tokens: tokenize(containerOrHTML.innerHTML), html: containerOrHTML.innerHTML, }; } } function normalizeTokens(tokens) { tokens.forEach(token => { if (token.type === 'StartTag') { token.attributes = token.attributes.sort((a, b) => { if (a[0] > b[0]) { return 1; } if (a[0] < b[0]) { return -1; } return 0; }); } }); } export default function equalTokens(actualContainer, expectedHTML, message = null) { let actual = generateTokens(actualContainer); let expected = generateTokens(expectedHTML); normalizeTokens(actual.tokens); normalizeTokens(expected.tokens); let { assert } = QUnit.config.current; let equiv = QUnit.equiv(actual.tokens, expected.tokens); if (equiv && expected.html !== actual.html) { assert.deepEqual(actual.tokens, expected.tokens, message); } else { assert.pushResult({ result: QUnit.equiv(actual.tokens, expected.tokens), actual: actual.html, expected: expected.html, message, }); } }
Version data entries
3 entries across 3 versions & 1 rubygems