Sha256: 9ca37b3d29084363588734ef28948d28fe68765a8f7ae1c98c1f90d82fd3fdf0

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

require "rake"

module Jstdutil
  # Knows how to map source files to test files, how to extract test cases
  # and so on.
  #
  class TestFile
    def initialize(file)
      @file = file
    end

    def test_files
      return @test_files if @test_files

      if @file =~ /([-_]test[^\/]+)|([^\/]+[-_]test)\.js/
        @test_files = [@file]
      else
        name = File.basename(@file).gsub(/([-_]test)|(test[-_])|(\.js)/, "")
        @test_files = FileList["**/#{name}_test.js",
                               "**/test_#{name}.js",
                               "**/#{name}-test.js",
                               "**/test-#{name}.js",
                               "**/#{camelize(name)}Test.js"].uniq
      end
    end

    def test_cases
      return @cases if @cases

      @cases = test_files.collect do |file|
        File.read(file).scan(/estCase\(["']([^"']*)/)
      end

      @cases.flatten!
    end

    private
    def camelize(str)
      pieces = str.split(/[^a-z0-9]/i)
      pieces.shift + pieces.map { |w| w.capitalize }.join
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jstdutil-0.3.11 lib/jstdutil/test_file.rb