Sha256: f77d259c030d715905cd42af499730ade1abaeef0f5b204f7b214c6859410ddc

Contents?: true

Size: 1.65 KB

Versions: 11

Compression:

Stored size: 1.65 KB

Contents

# -*- coding: utf-8 -*-
require 'spec_helper'
require 'rack/test'
require 'fileutils'
require 'sprockets'
require 'tdiary/rack/assets/precompile'

describe TDiary::Rack::Assets::Precompile do
	include Rack::Test::Methods

	let(:app) do
		TDiary::Rack::Assets::Precompile.new(lambda{|env| [200, {}, ['Awesome']]}, @environment)
	end
	let(:assets_path) {"#{TDiary::PATH}/tmp/assets"}

	before do
		FileUtils.mkdir_p assets_path
		@environment = Sprockets::Environment.new
		@environment.append_path assets_path
	end

	after do
		FileUtils.rm_rf assets_path
	end

	context "JavaScript が無い場合" do
		before do
			FileUtils.touch "#{assets_path}/foo.coffee"
			get '/'
		end

		it "JavaScript にコンパイルされる" do
			expect(FileTest.exist?("#{assets_path}/foo.js")).to be_truthy
		end
	end

	context "JavaScript がある場合" do
		context "CoffeeScript の方が新しい場合" do
			before do
				FileUtils.touch "#{assets_path}/foo.js"
				sleep 1
				FileUtils.touch "#{assets_path}/foo.coffee"
				@jstime = File.mtime("#{assets_path}/foo.js").to_i

				get '/'
			end

			it "JavaScript が更新される" do
				expect(@jstime).to be < File.mtime("#{assets_path}/foo.js").to_i
			end
		end

		context "JavaScript の方が新しい場合" do
			before do
				FileUtils.touch "#{assets_path}/foo.coffee"
				sleep 1
				FileUtils.touch "#{assets_path}/foo.js"
				@jstime = File.mtime("#{assets_path}/foo.js").to_i

				get '/'
			end

			it "JavaScript は更新されない" do
				expect(@jstime).to eq(File.mtime("#{assets_path}/foo.js").to_i)
			end
		end
	end
end

# Local Variables:
# mode: ruby
# indent-tabs-mode: t
# tab-width: 3
# ruby-indent-level: 3
# End:

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
tdiary-4.2.1 vendor/bundle/ruby/2.3.0/gems/tdiary-4.2.0/spec/core/rack/assets/precompile_spec.rb
tdiary-4.2.0 spec/core/rack/assets/precompile_spec.rb
tdiary-4.1.3 spec/core/rack/assets/precompile_spec.rb
tdiary-4.1.2 spec/core/rack/assets/precompile_spec.rb
tdiary-4.1.1 spec/core/rack/assets/precompile_spec.rb
tdiary-4.1.0 spec/core/rack/assets/precompile_spec.rb
tdiary-4.1.0.20141126 spec/core/rack/assets/precompile_spec.rb
tdiary-4.0.5.1 spec/core/rack/assets/precompile_spec.rb
tdiary-4.0.5 spec/core/rack/assets/precompile_spec.rb
tdiary-4.0.4 spec/core/rack/assets/precompile_spec.rb
tdiary-4.0.3 spec/core/rack/assets/precompile_spec.rb