Rakefile 1.6 KB
Newer Older
1 2
# frozen_string_literal: true

3 4
require "rake/testtask"
require "pathname"
5
require "open3"
6
require "action_cable"
7

8
task default: :test
9

10
task package: %w( assets:compile assets:verify )
11

12
Rake::TestTask.new do |t|
13
  t.libs << "test"
B
bogdanvlviv 已提交
14
  t.test_files = Dir.glob("#{__dir__}/test/**/*_test.rb")
15
  t.warning = true
16
  t.verbose = true
17
  t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
18
end
19

20 21 22
namespace :test do
  task :isolated do
    Dir.glob("test/**/*_test.rb").all? do |file|
23
      sh(Gem.ruby, "-w", "-Ilib:test", file)
24
    end || raise("Failures")
25
  end
26

27
  task :integration do
28
    require "blade"
29
    if ENV["CI"]
30 31 32 33
      Blade.start(interface: :ci)
    else
      Blade.start(interface: :runner)
    end
34
  end
35 36
end

37
namespace :assets do
38
  desc "Compile Action Cable assets"
39
  task :compile do
40
    require "blade"
41 42
    require "sprockets"
    require "sprockets/export"
43
    Blade.build
44
  end
45 46 47 48

  desc "Verify compiled Action Cable assets"
  task :verify do
    file = "lib/assets/compiled/action_cable.js"
B
bogdanvlviv 已提交
49
    pathname = Pathname.new("#{__dir__}/#{file}")
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

    print "[verify] #{file} exists "
    if pathname.exist?
      puts "[OK]"
    else
      $stderr.puts "[FAIL]"
      fail
    end

    print "[verify] #{file} is a UMD module "
    if pathname.read =~ /module\.exports.*define\.amd/m
      puts "[OK]"
    else
      $stderr.puts "[FAIL]"
      fail
    end

B
bogdanvlviv 已提交
67 68
    print "[verify] #{__dir__} can be required as a module "
    _, stderr, status = Open3.capture3("node", "--print", "window = {}; require('#{__dir__}');")
69 70 71 72 73 74 75
    if status.success?
      puts "[OK]"
    else
      $stderr.puts "[FAIL]\n#{stderr}"
      fail
    end
  end
76
end