Files
chatterino2/tests
d00b1ee920 refactor(plugins): Use QStringList for enabled plugins (#7035)
`QStringList` has two advantages over `std::vector<QString>` for
settings:
1. Cheap to copy (COW). Setting values need to be copied when they're
accessed, because they're behind a mutex.
2. Better helper functions (see changes).

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl>
2026-06-27 13:58:44 +00:00
..
2026-04-05 11:02:17 +00:00

To run tests, you'll first need to enable the test flag in cmake. You can do this by adding the -DBUILD_TESTS=On flag to your cmake setup call. (e.g. mkdir build && cd build && cmake -DBUILD_TESTS=On ..)

After you've built Chatterino, you can now run the tests with ctest or by manually running the newly created chatterino-test executable

Pre-requisites to running tests

  • Download & run httpbox
    We expect this to be listening to port 9051, you can launch it like this:
    httpbox --port 9051

  • Download & run twitch-pubsub-server-test
    We expect this to be listening to port 9050, you can launch it like this: twitch-pubsub-server-test 127.0.0.1:9050

Alternatively, you can run the docker-compose defined in this file: docker compose up before you run the tests.

Modifying message building

If you make a change that has to do with message building, there's a big chance that some of the snapshot tests will fail. If this happens, you might want to:

  1. Set the UPDATE_SNAPSHOTS boolean at the top of the IrcMessageHandler.cpp test file to true
  2. Re-run the tests (this will update the snapshots to match your new reality)
  3. Reset UPDATE_SNAPSHOTS to false again
  4. Then run the tests a final time.

Once this is done, you should take a look at the changes made to the snapshot json files to ensure that it looks correct.