aboutsummaryrefslogblamecommitdiffstats
path: root/actioncable/Rakefile
blob: 226d1711044a02842dcddd8b65a8500992a71b23 (plain) (tree)
1
2
3
4
5
6
7
8
9

                             

                       
               
                      
 
                   
 
                                                
 
                         
                  
                                                         
                  
                  
                                                    
   
 


                                                
                                            
                            
     
 
                      
                   
                



                                     
     

   
                    
                                    
                  
                   

                              
               
     



                                                
                                                 
















                                                       

                                                                                                






                                      
   
# frozen_string_literal: true

require "rake/testtask"
require "pathname"
require "open3"
require "action_cable"

task default: :test

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

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = Dir.glob("#{__dir__}/test/**/*_test.rb")
  t.warning = true
  t.verbose = true
  t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end

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

  task :integration do
    require "blade"
    if ENV["CI"]
      Blade.start(interface: :ci)
    else
      Blade.start(interface: :runner)
    end
  end
end

namespace :assets do
  desc "Compile Action Cable assets"
  task :compile do
    require "blade"
    require "sprockets"
    require "sprockets/export"
    Blade.build
  end

  desc "Verify compiled Action Cable assets"
  task :verify do
    file = "lib/assets/compiled/action_cable.js"
    pathname = Pathname.new("#{__dir__}/#{file}")

    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

    print "[verify] #{__dir__} can be required as a module "
    _, stderr, status = Open3.capture3("node", "--print", "window = {}; require('#{__dir__}');")
    if status.success?
      puts "[OK]"
    else
      $stderr.puts "[FAIL]\n#{stderr}"
      fail
    end
  end
end