spec/unit/mutant/mutator/node_spec.rb in mutant-0.8.10 vs spec/unit/mutant/mutator/node_spec.rb in mutant-0.8.11

- old
+ new

@@ -1,12 +1,45 @@ -RSpec.describe Mutant::Mutator::Node do - Mutant::Meta::Example::ALL.each do |example| - context "on #{example.node.type.inspect}" do - it 'generates the correct mutations' do +Mutant::Meta::Example::ALL.each.group_by(&:node_type).each do |type, examples| + RSpec.describe Mutant::Mutator::REGISTRY.lookup(type) do + toplevel_nodes = examples.map { |example| example.node.type }.uniq + + it "generates the correct mutations on #{toplevel_nodes} toplevel examples" do + examples.each do |example| verification = example.verification unless verification.success? fail verification.error_report end end + end + end +end + +RSpec.describe Mutant::Mutator::Node do + describe 'internal DSL' do + let(:klass) do + Class.new(described_class) do + children(:left, :right) + + def dispatch + left + emit_left(s(:nil)) + emit_right_mutations do |node| + node.eql?(s(:nil)) + end + end + end + end + + def apply + klass.call(s(:and, s(:true), s(:true))) + end + + specify do + expect(apply).to eql( + [ + s(:and, s(:nil), s(:true)), + s(:and, s(:true), s(:nil)) + ].to_set + ) end end end