All files / src/virtual-dom/nodes TextNode.ts

100% Statements 9/9
100% Branches 2/2
100% Functions 3/3
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 413x   3x             7x                   5x                   5x   5x   3x     2x   2x    
export default class TextNode {
 
    static isText: boolean = true;
 
    constructor(
 
        /**
         * The text of the element
         */
        public text: string | number | boolean
 
    ) {}
 
    /**
     * Creates a DOM node from this virtual node
     * @returns The text node
     */
    createDom(): Text {
 
        return document.createTextNode(this.text.toString());
    }
 
    /**
     * Patches the DOM node according to the internal state
     * @param value 
     * @returns 
     */
    patchDom(node: Text): boolean {
 
        const text = this.text.toString(); // Convert the equivalent value to string
 
        if (node.textContent === text) {
 
            return false; // Same text content
        }
 
        node.textContent = text;
 
        return true;
    }
}