Sha256: 16c7e584a11f81e2073053e0318da7d5ed69c4e7520240051c1b312da4257491
Contents?: true
Size: 1.48 KB
Versions: 2
Compression:
Stored size: 1.48 KB
Contents
# frozen_string_literal: true RSpec.describe Fear::Extractor::IdentifierMatcher do let(:parser) { Fear::Extractor::GrammarParser.new } let(:matcher) { parser.parse(pattern).to_matcher } describe "#defined_at?" do subject { matcher } let(:pattern) { "number" } it { is_expected.to be_defined_at(1) } it { is_expected.to be_defined_at("foo") } it { is_expected.to be_defined_at(1.2) } it { is_expected.to be_defined_at([1, "2"]) } context "within array" do let(:pattern) { "[1, n, 2]" } it { is_expected.to be_defined_at([1, 2, 2]) } it { is_expected.to be_defined_at([1, "foo", 2]) } it { is_expected.not_to be_defined_at([1, "foo"]) } end end describe "#call" do subject { matcher.(other) } let(:pattern) { "1.0" } context "defined" do let(:other) { 1 } it { is_expected.to eq({}) } end end describe "#failure_reason" do subject { matcher.failure_reason(other) } let(:pattern) { "1.0" } context "match integer" do let(:other) { 1 } let(:pattern) { "1" } it { is_expected.to eq(Fear.none) } end context "match float" do let(:other) { 1.0 } let(:pattern) { "1" } it { is_expected.to eq(Fear.none) } end context "does not match another integer" do let(:other) { 2 } let(:pattern) { "1" } it { is_expected.to eq(Fear.some(<<~ERROR.strip)) } Expected `2` to match: 1 ^ ERROR end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fear-1.2.0 | spec/fear/extractor/identifier_matcher_spec.rb |
fear-1.1.0 | spec/fear/extractor/identifier_matcher_spec.rb |