mix live_style.setup_tests (LiveStyle v0.16.3)

Copy Markdown View Source

Pre-compiles test files to register LiveStyle modules in the manifest.

Why This Is Needed

Source files (.ex) are compiled by Mix before your app runs, so their LiveStyle definitions are in the manifest when needed. Test files (.exs) are different - they're evaluated by ExUnit at runtime, which can cause race conditions where tests start before all test modules have registered their styles.

This task compiles test files in a subprocess to populate the manifest before ExUnit starts, ensuring all LiveStyle definitions are available.

When You Need This

Only add this task if your tests define LiveStyle modules. For example:

defmodule MyAppWeb.ComponentTest do
  use ExUnit.Case

  # This module needs to be in the manifest before tests run
  defmodule TestStyles do
    use LiveStyle
    class :test_button, color: "red"
  end

  test "renders with correct class" do
    # Test uses TestStyles
  end
end

If your tests only use styles defined in lib/ (not define new ones), you don't need this task.

Setup

Add this task to your test alias in mix.exs:

defp aliases do
  [
    test: ["live_style.setup_tests", "test"]
  ]
end

Usage

The task runs automatically before tests via the alias:

mix test

Or run manually:

mix live_style.setup_tests