spec/swiftformat/plugin_spec.rb in danger-swiftformat-0.5.0 vs spec/swiftformat/plugin_spec.rb in danger-swiftformat-0.6.0

- old
+ new

@@ -37,10 +37,11 @@ it "should pass the additional flags to swiftformat" do allow(@sut.git).to receive(:added_files).and_return(["Added.swift"]) allow(@sut.git).to receive(:modified_files).and_return(["Modified.swift"]) allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.swift"]) + allow(@sut.git).to receive(:renamed_files).and_return([{}]) allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) allow_any_instance_of(SwiftFormat).to receive(:check_format) .with(%w(Added.swift Modified.swift), additional_args) .and_return(success_output) @@ -60,10 +61,11 @@ it "should include the additional message in the report" do allow(@sut.git).to receive(:added_files).and_return(["Added.swift"]) allow(@sut.git).to receive(:modified_files).and_return(["Modified.swift"]) allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.swift"]) + allow(@sut.git).to receive(:renamed_files).and_return([{}]) allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) allow_any_instance_of(SwiftFormat).to receive(:check_format).with(%w(Added.swift Modified.swift), nil).and_return(error_output) @sut.additional_message = additional_message @sut.check_format(fail_on_error: true) @@ -79,10 +81,11 @@ it "should filter the files passed to swiftformat" do allow(@sut.git).to receive(:added_files).and_return(%w(Added.swift Pods/Test.swift Carthage/SQLite.swift Sources/Module/JSONParsing_autogenerated.swift)) allow(@sut.git).to receive(:modified_files).and_return(["Source/Modified.swift"]) allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.swift"]) + allow(@sut.git).to receive(:renamed_files).and_return([{}]) allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) allow_any_instance_of(SwiftFormat).to receive(:check_format) .with(%w(Added.swift), nil) .and_return(success_output) @@ -94,20 +97,45 @@ expect(status[:errors]).to be_empty expect(status[:markdowns]).to be_empty end end + context "with renamed files" do + let(:additional_args) { "--indent tab --self insert" } + let(:success_output) { { errors: [], stats: { run_time: "0.08s" } } } + + it "should use the post-rename filename" do + allow(@sut.git).to receive(:added_files).and_return(["Added.swift"]) + allow(@sut.git).to receive(:modified_files).and_return(["ModifiedBefore.swift"]) + allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.swift"]) + allow(@sut.git).to receive(:renamed_files).and_return([{ before: "ModifiedBefore.swift", after: "ModifiedAfter.swift" }]) + allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) + allow_any_instance_of(SwiftFormat).to receive(:check_format) + .with(%w(Added.swift ModifiedAfter.swift), additional_args) + .and_return(success_output) + + @sut.additional_args = additional_args + + @sut.check_format(fail_on_error: true) + + status = @sut.status_report + expect(status[:errors]).to be_empty + expect(status[:markdowns]).to be_empty + end + end + describe "#check_format" do let(:success_output) { { errors: [], stats: { run_time: "0.08s" } } } let(:error_output) { { errors: [{ file: "Modified.swift", rules: %w(firstRule secondRule) }], stats: { run_time: "0.16s" } } } context "when there are no swift files to check" do before do allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) allow(@sut.git).to receive(:added_files).and_return(["Added.m"]) allow(@sut.git).to receive(:modified_files).and_return(["Modified.m"]) allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.m"]) + allow(@sut.git).to receive(:renamed_files).and_return([{}]) end it "should not do anything" do @sut.check_format(fail_on_error: true) @@ -121,9 +149,10 @@ before do allow_any_instance_of(SwiftFormat).to receive(:installed?).and_return(true) allow(@sut.git).to receive(:added_files).and_return(["Added.swift"]) allow(@sut.git).to receive(:modified_files).and_return(["Modified.swift"]) allow(@sut.git).to receive(:deleted_files).and_return(["Deleted.swift"]) + allow(@sut.git).to receive(:renamed_files).and_return([{}]) end context "when swiftformat does not find any errors" do before do allow_any_instance_of(SwiftFormat).to receive(:check_format).with(%w(Added.swift Modified.swift), nil).and_return(success_output)