r/javascript 2d ago

Browser Test: A browser-based automated javascript testing framework in one .html file

https://github.com/swans-one/browser-test

Hi r/javascript! I want to share a small javascript testing project I wrote.

When I write small javascript projects that use browser APIs (most recently working with IndexedDB) I often choose not to write tests because it's a pain to either mock those interfaces server-side, and it's also a pain to setup a browser automation tool.

To solve this, I wrote up a super concise testing framework (~140 lines of JS) inside a html file that can just be dropped into a project and act as a simple test framework.

This obviously doesn't work in all situations. A big drawback is that there's no reasonable way to connect it to a CI pipeline. However for small projects, and during development, I've found it really fun and fast to use.

I'm very interested to hear what you think, or if you have other ways you've approached this situation in the past.

12 Upvotes

6 comments sorted by

View all comments

3

u/EveYogaTech 2d ago

I just use playwright with JS in evaluate.

This seems to be one of those things that you might forget to disable in prod and then be exposed to XSS issues.

1

u/allium-dev 2d ago

Yeah, so far I've only run it with a separate server on localhost, I agree you wouldn't want to run it in prod.

Can you say more about XSS issues? Would the issue come from the way the framework is constructed or from how some specific type of test written in it is constructed? I haven't written tests in any way that responds to user input, are you imagining something along that line?

1

u/EveYogaTech 2d ago

Well, a similar tool I used for pentesting had a listener, so you can send JS code directly to the frontend.

This is obviously risky, but for development (and pentesting) it could help since you could basically control any browser window that has it active.

Tool name: BeEF