Skip to main content

Weekly Futtun Updates 16

Introduction
#

Hello everyone,

How are you? Welcome to my blog. In this post, I will talk about Futtun’s progress update, from Monday 13 April 2026 to today, Sunday 19 April 2026.

Stop downloading Chrome before running Vitest browser tests
#

I find this unexpected.

Futtun uses Vitest as its testing library, and Vitest has Vitest Browser Mode for tests that run in a browser. To be thorough, I am running these tests on both Chrome and Firefox. For Firefox, it uses the version already installed on the machine, but for Chrome, it was downloading Chrome on the first test run after I restarted my laptop. I always wondered why this first run slower than subsequent runs, but it did not bother me, and I had bigger fishes to fry. So I left it unexplored. That is, until test runs on Chrome started failing.

As it turns out, the directory under /tmp/chrome/ where Vitest expected to find Chrome was there, but Chrome itself was missing. Vitest was not expecting this, hence the tests failed to run.

The easy fix was to remove the folder inside /tmp/chrome/, forcing Vitest to redownload Chrome. However, downloading Chrome every day is suboptimal, since I already have it installed on my machine. So I configured Vitest to use the locally installed Chrome:

export default defineConfig({
  ...MORE STUFF HERE...
  test: {
    ...MORE STUFF HERE...
    browser: {
      enabled: true,
      headless: true,
      provider: webdriverio(),
      instances: [
        {
          browser: 'chrome',
          // What I added is the `provider` section
          provider: webdriverio({
            capabilities: {
              'goog:chromeOptions': {
                binary: '/path/to/your/chrome/installation'
              }
            }
          })
        },
        ...MORE STUFF HERE...
      ],
    },
  },
})

A caveat: I only run tests locally, never on a CI pipeline. If I did, I would probably need to create a separate Vitest configuration file for CI, since downloading Chrome every time may be desirable there.

Started work on viewing the audit log
#

I have started working on making the audit log viewable by the user. I am pleased to say I have a working version ready, but it is too spartan to release: it is just a list of changes, without being able to see what each action changed.

I am improving it so you can see what the action changed by clicking on it, and progress is steady.

Various improvements
#

The items on this list are not big enough / complicated enough / interesting enough to warrant their own section. Yet, I still want to surface this work.

Here is what I also did:

  • When browser tests navigate to a different page, I have added checks to ensure the URL is correct;
  • Downgraded TypeScript from 6 to 5, because my version of React Router is not yet compatible with it;
  • Futtun was using the vite-tsconfig-paths package, but Vite now does what the package does. Vite was printing a warning message about it, so I updated Vite’s configuration as instructed, and removed the package.

Dependency updates
#

With Futtun being an Internet facing application, I will now need to keep on top of updating its dependencies for as long as I will keep Futtun available.

Conclusion
#

Thank you for your time, and I hope to see you again soon. Bye bye.