squint

Chris McCormick 2026-01-09T15:00:45.507529Z

Eucalypt update. Slowly porting the Preact tests over one by one. As of today I managed to get an absolutely monsterous piece of code working where I can now run the Eucalypt test files (only the first basic test running so far) inside actual Reagent inside Squint inside Happy Dom inside nbb. This is so I can check canonical Reagent behaviour in the tests and make sure Eucalypt is conforming. Kind of hilarious that it works. I think I've already found a bug/difference between Reagent and Eucalypt behaviour.

1
Chris McCormick 2026-01-09T15:01:34.948119Z

$ npx nbb src/test/reagent-runner/runreagent.cljs src/test/src/basic_components.test.cljs 

Simple Component
  ✓ should render correctly

Simple Parent
  ✓ should render with a child component

Hello Component
  ✓ should say hello

Lister
  ✓ should render a list

Class attribute handling
  ✓ should handle a vector of strings
  ✓ should handle a vector of keywords
  ✓ should handle a vector of mixed strings and keywords
  ✓ should handle a vector with nil values
  ✓ should handle an empty vector
  ✓ should handle a vector with only nil values

Hiccup tag decorators
  ✓ should handle a single class decorator
  ✓ should handle multiple class decorators
  ✓ should handle an id decorator
  ✓ should handle both id and class decorators
  ✓ should merge class decorator with :class string attribute
  ✓ should merge class decorator with :class vector attribute
  ✓ should give :id attribute precedence over id decorator
  ✓ should handle complex precedence
  ✗ should default to div for class-only decorator
    Error: Cannot read properties of null (reading 'indexOf')

Initial Render
  ✓ should render a simple component exactly once on initial mount

---
Tests: 19 passed, 1 failed, 20 total

Chris McCormick 2026-01-09T15:01:53.738829Z

(Eucalpyt basic component test running inside Reagent in Squint in nbb)