Validating Element Detection Implementation in PreactJS
This test suite validates the isValidElement function in Preact’s compatibility layer, ensuring proper detection of valid element nodes. It verifies the function’s ability to distinguish between valid Preact/React elements and invalid input types, crucial for maintaining React compatibility.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
preactjs/preact
compat/test/browser/isValidElement.test.js
import { createElement as preactCreateElement } from 'preact';
import React, { isValidElement } from 'preact/compat';
describe('isValidElement', () => {
it('should check return false for invalid arguments', () => {
expect(isValidElement(null)).to.equal(false);
expect(isValidElement(false)).to.equal(false);
expect(isValidElement(true)).to.equal(false);
expect(isValidElement('foo')).to.equal(false);
expect(isValidElement(123)).to.equal(false);
expect(isValidElement([])).to.equal(false);
expect(isValidElement({})).to.equal(false);
});
it('should detect a preact vnode', () => {
expect(isValidElement(preactCreateElement('div', {}))).to.equal(true);
});
it('should detect a compat vnode', () => {
expect(isValidElement(React.createElement('div', {}))).to.equal(true);
});
});