Sha256: 80170760d7002b7a3ca73b46828b75dcf194cd53f37475b1d6dd672a2c78e2b0
Contents?: true
Size: 1.59 KB
Versions: 4
Compression:
Stored size: 1.59 KB
Contents
require "metamorpher/transformer/site" module Metamorpher module Transformer describe Site do subject { Site.new(4..6, "foo", "bar") } describe "slide" do it "should return a replacement with the new position" do expect(subject.slide(2).original_position).to eq(6..8) end it "should not alter the code" do expect(subject.slide(2).original_code).to eq("foo") expect(subject.slide(2).transformed_code).to eq("bar") end it "should be chainable" do expect(subject.slide(2).slide(10).original_position).to eq(16..18) end end describe "merge_into" do it "should apply change to argument" do expect(subject.merge_into("foo foo")).to eq("foo bar") end it "should raise error when mergee is shorter than start of position" do expect { subject.merge_into("foo") }.to raise_error(ArgumentError) end it "should not raise error when mergee is same length as start of position" do expect { subject.merge_into("foo ") }.to_not raise_error end end describe "offset" do it "should be 0 when position and value are the same size" do expect(subject.offset).to eq(0) end it "should be -ve when position's size is larger than value's size" do expect(Site.new(4..6, "foo", "b").offset).to eq(-2) end it "should be +ve when position's size is smaller than value's size" do expect(Site.new(4..6, "foo", "baaz").offset).to eq(1) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems