free_mutant/spec/unit/mutant_spec.rb
Markus Schirp f633c8d894 Reduce default processor count to two under CI environments
Most CI implementations like travis / circleci run the builds
containerised. This can lead to the situartion where many more
processors are detected via /proc/cpuinfo and friends than are actually
usable through resource limits enforced by the containerization.
This can result in high resource consumption that might
result in abnormal build termination.

The default can easily be overriden in your CI setup.

* http://fabiokung.com/2014/03/13/memory-inside-linux-containers/
2014-08-11 17:52:53 +00:00

58 lines
1.4 KiB
Ruby

RSpec.describe Mutant do
let(:object) { described_class }
describe '.ci?' do
subject { object.ci? }
let(:result) { double('Result') }
before do
expect(ENV).to receive(:key?).with('CI').and_return(result)
end
it { should be(result) }
end
describe '.zombify' do
subject { object.zombify }
it 'calls the zombifier' do
expect(Mutant::Zombifier).to receive(:run).with('mutant', :Zombie)
subject
end
end
describe '.singleton_subclass_instance' do
subject { object.singleton_subclass_instance(name, superclass, &block) }
before { subject }
let(:name) { 'Test' }
let(:block) { proc { def foo; end } }
let(:superclass) { Class.new }
let(:generated) { superclass.const_get(:Test) }
it_should_behave_like 'a command method'
it 'sets expected name' do
name = generated.class.name
expect(name).to eql("::#{self.name}")
expect(name).to be_frozen
end
it 'stores instance of subclass' do
expect(generated).to be_kind_of(superclass)
end
it 'evaluates the context of proc inside subclass' do
expect(generated).to respond_to(:foo)
end
it 'generates nice #inspect' do
inspect = generated.inspect
expect(inspect).to eql("::#{self.name}")
expect(inspect).to be_frozen
end
end
end