require 'spec_helper' require 'minimart/web/html_generator' describe Minimart::Web::HtmlGenerator do let(:cookbooks) do Minimart::Web::Cookbooks.new(inventory_directory: 'spec/fixtures') end let(:web_directory) { test_directory } let(:assets_directory) { File.join(web_directory, 'assets') } let(:stylesheets_directory) { File.join(assets_directory, 'stylesheets') } let(:javascripts_directory) { File.join(assets_directory, 'javascripts') } subject do Minimart::Web::HtmlGenerator.new( web_directory: web_directory, cookbooks: cookbooks) end describe '#generate' do it 'should copy any available assets' do subject.generate expect(Dir.exist?(assets_directory)).to eq true end it 'should minify raw CSS files' do subject.generate expect(Dir.entries(stylesheets_directory)).to include('application.min.css') end it 'should unglify raw JS files' do subject.generate expect(Dir.entries(javascripts_directory)).to include('application.min.js') end it 'should generate the dashboard page' do expect_any_instance_of(Minimart::Web::DashboardGenerator).to receive(:generate) subject.generate end it 'should generate show pages for any of the cookbooks' do expect_any_instance_of(Minimart::Web::CookbookShowPageGenerator).to receive(:generate) subject.generate end end end