Module: E2E::ViteAssets

Defined in:
lib/e2e/vite_assets.rb

Overview

Ensures ViteRuby test assets are built before the e2e suite runs.

ViteRuby::Builder skips compile when the watched-files digest is unchanged, so calling this on every suite start is cheap when assets are fresh.

A flock serializes builders across processes (e.g. accidental parallel e2e).

Constant Summary collapse

LOCK_NAME =
"e2e-vite-test-build.lock"
SKIP_ENV =
"SKIP_VITE_TEST_BUILD"

Class Method Summary collapse

Class Method Details

.ensure_built!Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/e2e/vite_assets.rb', line 18

def ensure_built!
  return if ENV[SKIP_ENV] == "1"
  return if done?

  mode = normalize_mode(E2E.config.ensure_vite_assets)
  return mark_done! if mode == :skip

  with_lock do
    return if done?

    case mode
    when :auto
      ensure_auto!
    when :build
      ensure_required!
    when :warn
      ensure_warn!
    end

    mark_done!
  end
end

.project_rootObject



45
46
47
48
49
50
51
# File 'lib/e2e/vite_assets.rb', line 45

def project_root
  if defined?(Rails) && Rails.respond_to?(:root) && Rails.root
    Pathname(Rails.root)
  else
    Pathname.pwd
  end
end

.reset!Object



41
42
43
# File 'lib/e2e/vite_assets.rb', line 41

def reset!
  @done = false
end