Skip to content

Commit

Permalink
chore: revert some expect vs assert changes
Browse files Browse the repository at this point in the history
  • Loading branch information
43081j committed Jan 21, 2025
1 parent 20b506d commit 8d6ca1c
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 65 deletions.
49 changes: 17 additions & 32 deletions packages/parse5/lib/parser/formatting-element-list.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { it, assert } from 'vitest';
import { it, assert, expect } from 'vitest';
import { TAG_NAMES as $, NS, getTagID } from '../common/html.js';
import { type TagToken, TokenType } from '../common/token.js';
import { type DefaultTreeAdapterMap } from '../tree-adapters/default.js';
Expand Down Expand Up @@ -66,8 +66,7 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => {
list.insertElementAfterBookmark(element4, createToken($.TITLE));

assert.strictEqual(list.entries.length, 4);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[2], 'element'));
assert.equal((list.entries[2] as ElementEntry<DefaultTreeAdapterMap>).element, element4);
expect(list.entries[2]).toHaveProperty('element', element4);
});

it('Push element - Noah Ark condition', () => {
Expand Down Expand Up @@ -95,43 +94,29 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => {
list.pushElement(element1, token4);

assert.strictEqual(list.entries.length, 4);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[3], 'token'));
assert.equal((list.entries[3] as ElementEntry<DefaultTreeAdapterMap>).token, token1);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[2], 'token'));
assert.equal((list.entries[2] as ElementEntry<DefaultTreeAdapterMap>).token, token2);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[1], 'token'));
assert.equal((list.entries[1] as ElementEntry<DefaultTreeAdapterMap>).token, token3);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[0], 'token'));
assert.equal((list.entries[0] as ElementEntry<DefaultTreeAdapterMap>).token, token4);
expect(list.entries[3]).toHaveProperty('token', token1);
expect(list.entries[2]).toHaveProperty('token', token2);
expect(list.entries[1]).toHaveProperty('token', token3);
expect(list.entries[0]).toHaveProperty('token', token4);

list.pushElement(element1, token5);

assert.strictEqual(list.entries.length, 4);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[3], 'token'));
assert.equal((list.entries[3] as ElementEntry<DefaultTreeAdapterMap>).token, token2);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[2], 'token'));
assert.equal((list.entries[2] as ElementEntry<DefaultTreeAdapterMap>).token, token3);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[1], 'token'));
assert.equal((list.entries[1] as ElementEntry<DefaultTreeAdapterMap>).token, token4);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[0], 'token'));
assert.equal((list.entries[0] as ElementEntry<DefaultTreeAdapterMap>).token, token5);
expect(list.entries[3]).toHaveProperty('token', token2);
expect(list.entries[2]).toHaveProperty('token', token3);
expect(list.entries[1]).toHaveProperty('token', token4);
expect(list.entries[0]).toHaveProperty('token', token5);

list.insertMarker();
list.pushElement(element1, token6);

assert.strictEqual(list.entries.length, 6);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[5], 'token'));
assert.equal((list.entries[5] as ElementEntry<DefaultTreeAdapterMap>).token, token2);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[4], 'token'));
assert.equal((list.entries[4] as ElementEntry<DefaultTreeAdapterMap>).token, token3);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[3], 'token'));
assert.equal((list.entries[3] as ElementEntry<DefaultTreeAdapterMap>).token, token4);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[2], 'token'));
assert.equal((list.entries[2] as ElementEntry<DefaultTreeAdapterMap>).token, token5);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[1], 'type'));
assert.equal(list.entries[1].type, EntryType.Marker);
assert.ok(Object.prototype.hasOwnProperty.call(list.entries[0], 'token'));
assert.equal((list.entries[0] as ElementEntry<DefaultTreeAdapterMap>).token, token6);
expect(list.entries[5]).toHaveProperty('token', token2);
expect(list.entries[4]).toHaveProperty('token', token3);
expect(list.entries[3]).toHaveProperty('token', token4);
expect(list.entries[2]).toHaveProperty('token', token5);
expect(list.entries[1]).toHaveProperty('type', EntryType.Marker);
expect(list.entries[0]).toHaveProperty('token', token6);
});

it('Clear to the last marker', () => {
Expand Down Expand Up @@ -187,7 +172,7 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => {
assert.strictEqual(list.entries.length, 2);

for (let i = 0; i < list.entries.length; i++) {
assert.notEqual((list.entries[i] as ElementEntry<DefaultTreeAdapterMap>).element, element1);
expect(list.entries[i]).not.toHaveProperty('element', element1);
}
});

Expand Down
56 changes: 23 additions & 33 deletions packages/parse5/lib/parser/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { it, assert, describe, beforeEach, afterEach, vi } from 'vitest';
import { it, assert, describe, beforeEach, afterEach, vi, expect } from 'vitest';
import { parseFragment, parse } from 'parse5';
import type { Element, TextNode } from '../tree-adapters/default.js';
import { generateParsingTests } from 'parse5-test-utils/dist/generate-parsing-tests.js';
import { treeAdapters } from 'parse5-test-utils/dist/common.js';
import { type DocumentType } from '../tree-adapters/default.js';
import type { Htmlparser2TreeAdapterMap } from 'parse5-htmlparser2-tree-adapter';

generateParsingTests(
Expand Down Expand Up @@ -77,21 +76,18 @@ describe('parser', () => {

it('Regression - DOCTYPE empty fields (GH-236)', () => {
const document = parse('<!DOCTYPE>');
const doctype = document.childNodes[0] as DocumentType;

assert.ok(Object.prototype.hasOwnProperty.call(doctype, 'name'));
assert.equal(doctype.name, '');
assert.ok(Object.prototype.hasOwnProperty.call(doctype, 'publicId'));
assert.equal(doctype.publicId, '');
assert.ok(Object.prototype.hasOwnProperty.call(doctype, 'systemId'));
assert.equal(doctype.systemId, '');
const doctype = document.childNodes[0];

expect(doctype).toHaveProperty('name', '');
expect(doctype).toHaveProperty('publicId', '');
expect(doctype).toHaveProperty('systemId', '');
});

it('Regression - CRLF inside </noscript> (GH-710)', () => {
const onParseError = vi.fn();
parse('<!doctype html><noscript>foo</noscript\r\n>', { onParseError });

assert.equal(onParseError.mock.calls.length, 0);
expect(onParseError).not.toHaveBeenCalled();
});

describe('Tree adapters', () => {
Expand All @@ -111,18 +107,15 @@ describe('parser', () => {
const bodyElement = (htmlElement as Element).childNodes[1] as Element;
assert.ok(treeAdapters.default.isElementNode(bodyElement));
// Expect 5 opened elements; in order: html, head, body, and 2x p
assert.equal(onItemPush.mock.calls.length, 5);
assert.deepEqual(onItemPush.mock.calls[0], [htmlElement]);
assert.deepEqual(onItemPush.mock.calls[2], [bodyElement]);
expect(onItemPush).toHaveBeenCalledTimes(5);
expect(onItemPush).toHaveBeenNthCalledWith(1, htmlElement);
expect(onItemPush).toHaveBeenNthCalledWith(3, bodyElement);
// The last opened element is the second p
assert.deepEqual(onItemPush.mock.calls[onItemPush.mock.calls.length - 1], [bodyElement.childNodes[1]]);
expect(onItemPush).toHaveBeenLastCalledWith(bodyElement.childNodes[1]);
// The second p isn't closed, plus we never pop body and html. Alas, only 2 pop events (head and p).
assert.equal(onItemPop.mock.calls.length, 2);
expect(onItemPop).toHaveBeenCalledTimes(2);
// The last pop event should be the first p.
assert.deepEqual(onItemPop.mock.calls[onItemPop.mock.calls.length - 1], [
bodyElement.childNodes[0],
bodyElement,
]);
expect(onItemPop).toHaveBeenLastCalledWith(bodyElement.childNodes[0], bodyElement);
});
});

Expand All @@ -141,24 +134,21 @@ describe('parser', () => {
const html = `<r><${tagName}><math id="</${tagName}><b>should be outside</b>">`;
const fragment = parseFragment(html);

assert.equal(fragment.childNodes.length, 1);
expect(fragment.childNodes.length).toBe(1);
const r = fragment.childNodes[0] as Element;
assert.equal(r.nodeName, 'r');
assert.equal(r.childNodes.length, 3);
assert.deepEqual(
r.childNodes.map((_) => _.nodeName),
[tagName, 'b', '#text'],
);
expect(r.nodeName).toBe('r');
expect(r.childNodes).toHaveLength(3);
expect(r.childNodes.map((_) => _.nodeName)).toEqual([tagName, 'b', '#text']);

const target = r.childNodes[0] as Element;
assert.equal(target.childNodes.length, 1);
assert.equal(target.childNodes[0].nodeName, '#text');
assert.equal((target.childNodes[0] as TextNode).value, '<math id="');
expect(target.childNodes).toHaveLength(1);
expect(target.childNodes[0].nodeName).toBe('#text');
expect((target.childNodes[0] as TextNode).value).toBe('<math id="');

const b = r.childNodes[1] as Element;
assert.equal(b.childNodes.length, 1);
assert.equal(b.childNodes[0].nodeName, '#text');
assert.equal((b.childNodes[0] as TextNode).value, 'should be outside');
expect(b.childNodes).toHaveLength(1);
expect(b.childNodes[0].nodeName).toBe('#text');
expect((b.childNodes[0] as TextNode).value).toBe('should be outside');
});
});
});

0 comments on commit 8d6ca1c

Please sign in to comment.