Skip to content

Commit bc76e66

Browse files
mostlyobviousmbj
authored andcommitted
Keeping docs honest with executbale test
1 parent e0f16de commit bc76e66

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

docs/ast-pattern.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ specific:
3030
```
3131
send
3232
{ selector = info
33-
, receiver = send{selector=logger}
33+
receiver = send{selector=logger}
3434
}
3535
```
3636

@@ -84,7 +84,7 @@ But could be made required via:
8484
block
8585
{ receiver = send
8686
{ selector = log
87-
, receiver = send{selector=logger}
87+
receiver = send{selector=logger}
8888
}
8989
}
9090
```

spec/unit/mutant/ast/pattern_spec.rb

+42
Original file line numberDiff line numberDiff line change
@@ -168,5 +168,47 @@ def apply
168168
expect(apply).to eql(right(expected_node))
169169
end
170170
end
171+
172+
context 'example from docs' do
173+
let(:string) { <<~EOS }
174+
block
175+
{ receiver = send
176+
{ selector = log
177+
receiver = send{selector=logger}
178+
}
179+
}
180+
EOS
181+
182+
let(:expected_node) do
183+
Mutant::AST::Pattern::Node.new(
184+
type: :block,
185+
descendant: Mutant::AST::Pattern::Node::Descendant.new(
186+
name: :receiver,
187+
pattern: Mutant::AST::Pattern::Node.new(
188+
type: :send,
189+
attribute: Mutant::AST::Pattern::Node::Attribute.new(
190+
name: :selector,
191+
value: Mutant::AST::Pattern::Node::Attribute::Value::Single.new(value: :log)
192+
),
193+
descendant: Mutant::AST::Pattern::Node::Descendant.new(
194+
name: :receiver,
195+
pattern: Mutant::AST::Pattern::Node.new(
196+
type: :send,
197+
attribute: Mutant::AST::Pattern::Node::Attribute.new(
198+
name: :selector,
199+
value: Mutant::AST::Pattern::Node::Attribute::Value::Single.new(value: :logger)
200+
),
201+
)
202+
)
203+
)
204+
)
205+
)
206+
end
207+
208+
it 'returns expected node' do
209+
expect(apply).to eql(right(expected_node))
210+
end
211+
end
212+
171213
end
172214
end

0 commit comments

Comments
 (0)