Skip to content

[With test] Type error in Bootstrap's class Toast #1694

Open
@Spixmaster

Description

v16.6.0 with Bun.

The following test fails.

import {assert} from "assert-ts";
import {Toast} from "bootstrap";
import {test} from "bun:test";
import {Browser, type BrowserContext, type BrowserPage} from "happy-dom";

test("showcase", (): undefined =>
{
    const browser: Browser = new Browser({
        settings: {
            disableErrorCapturing: true,
            disableJavaScriptEvaluation: true,
            fetch: {disableSameOriginPolicy: true}
        }
    });
    const context: BrowserContext = browser.defaultContext;
    const page: BrowserPage = context.newPage();
    //@ts-expect-error
    global.window = page.mainFrame.window;
    //@ts-expect-error
    global.document = page.mainFrame.window.document;
    document.body.innerHTML = `<div id="a"></div>`;
    localStorage.clear();

    const a: HTMLElement | null = document.getElementById("a");
    assert(a !== null);
    const toast: Toast = new Toast(a, {autohide: false});
    toast.show();
    toast.dispose();
});

Output:

tests/src-web/typescript/consent.test.ts:
✓ showcase [4.38ms]
4353 |       this._clearTimeout();
4354 |       if (this._config.animation) {
4355 |         this._element.classList.add(CLASS_NAME_FADE);
4356 |       }
4357 |       const complete = () => {
4358 |         this._element.classList.remove(CLASS_NAME_SHOWING);
                    ^
TypeError: null is not an object (evaluating 'this._element.classList')
      at complete (/home/matheus/programmieren/c++/argo/node_modules/bootstrap/dist/js/bootstrap.js:4358:14)
      at execute (/home/matheus/programmieren/c++/argo/node_modules/bootstrap/dist/js/bootstrap.js:272:53)
      at handler (/home/matheus/programmieren/c++/argo/node_modules/bootstrap/dist/js/bootstrap.js:290:7)
      at #callDispatchEventListeners (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/event/EventTarget.js:219:30)
      at dispatchEvent (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/event/EventTarget.js:92:14)
      at dispatchEvent (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/nodes/element/Element.js:960:35)
      at #goThroughDispatchEventPhases (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/event/EventTarget.js:143:38)
      at dispatchEvent (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/event/EventTarget.js:88:18)
      at dispatchEvent (/home/matheus/programmieren/c++/argo/node_modules/happy-dom/lib/nodes/element/Element.js:960:35)
      at triggerTransitionEnd (/home/matheus/programmieren/c++/argo/node_modules/bootstrap/dist/js/bootstrap.js:145:13)

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions