spec/unit/sugarable_spec.rb (66 lines of code) (raw):
require "spec_helper"
module Omnibus
describe Software do
it "is a sugarable" do
expect(described_class.ancestors).to include(Sugarable)
end
end
describe Metadata do
it "extends Sugarable" do
expect(described_class.singleton_class.included_modules).to include(Sugarable)
end
it "is a sugarable" do
expect(described_class.ancestors).to include(Sugarable)
end
end
describe Packager::Base do
it "is a sugarable" do
expect(described_class.ancestors).to include(Sugarable)
end
end
describe Project do
it "is a sugarable" do
expect(described_class.ancestors).to include(Sugarable)
end
end
describe Sugarable do
context "in a cleanroom" do
let(:klass) do
Class.new do
include Cleanroom
include Sugarable
end
end
let(:instance) { klass.new }
it "includes the DSL methods" do
expect(klass).to be_method_defined(:windows?)
expect(klass).to be_method_defined(:vagrant?)
expect(klass).to be_method_defined(:_64_bit?)
end
it "makes the DSL methods available in the cleanroom" do
expect do
instance.evaluate <<-EOH.gsub(/^ {12}/, "")
windows?
vagrant?
EOH
end.to_not raise_error
end
end
end
describe Sugar do
let(:klass) do
Class.new do
include Sugar
end
end
let(:instance) { klass.new }
it "returns the windows architecture being built" do
expect(Omnibus::Config).to receive(:windows_arch).and_return(:x86_64)
expect(instance.windows_arch_i386?).to eq(false)
end
it "returns whether fips_mode is enabled" do
expect(Omnibus::Config).to receive(:fips_mode).and_return(false)
expect(instance.fips_mode?).to eq(false)
end
end
end