Merge pull request #20580 from Homebrew/fix-write-mkpath-extension-tests
Fix `WriteMkpathExtension` tests
This commit is contained in:
commit
1ebeb64196
@ -2,16 +2,17 @@
|
||||
|
||||
require "extend/pathname/write_mkpath_extension"
|
||||
|
||||
# Use a copy of Pathname with the WriteMkpathExtension prepended to avoid affecting the original class for all tests
|
||||
class PathnameCopy < Pathname
|
||||
PathnameCopy.prepend WriteMkpathExtension
|
||||
end
|
||||
|
||||
RSpec.describe WriteMkpathExtension do
|
||||
let(:file_content) { "sample contents" }
|
||||
|
||||
before do
|
||||
Pathname.prepend described_class
|
||||
end
|
||||
|
||||
it "creates parent directories if they do not exist" do
|
||||
mktmpdir do |tmpdir|
|
||||
file = tmpdir/"foo/bar/baz.txt"
|
||||
file = PathnameCopy.new(tmpdir/"foo/bar/baz.txt")
|
||||
expect(file.dirname).not_to exist
|
||||
file.write(file_content)
|
||||
expect(file).to exist
|
||||
@ -21,7 +22,7 @@ RSpec.describe WriteMkpathExtension do
|
||||
|
||||
it "raises if file exists and not in append mode or with offset" do
|
||||
mktmpdir do |tmpdir|
|
||||
file = tmpdir/"file.txt"
|
||||
file = PathnameCopy.new(tmpdir/"file.txt")
|
||||
file.write(file_content)
|
||||
expect { file.write("new content") }.to raise_error(RuntimeError, /Will not overwrite/)
|
||||
end
|
||||
@ -29,7 +30,7 @@ RSpec.describe WriteMkpathExtension do
|
||||
|
||||
it "allows overwrite if offset is provided" do
|
||||
mktmpdir do |tmpdir|
|
||||
file = tmpdir/"file.txt"
|
||||
file = PathnameCopy.new(tmpdir/"file.txt")
|
||||
file.write(file_content)
|
||||
expect do
|
||||
file.write("change", 0)
|
||||
@ -40,7 +41,7 @@ RSpec.describe WriteMkpathExtension do
|
||||
|
||||
it "allows append mode ('a')" do
|
||||
mktmpdir do |tmpdir|
|
||||
file = tmpdir/"file.txt"
|
||||
file = PathnameCopy.new(tmpdir/"file.txt")
|
||||
file.write(file_content)
|
||||
expect do
|
||||
file.write(" appended", mode: "a")
|
||||
@ -51,7 +52,7 @@ RSpec.describe WriteMkpathExtension do
|
||||
|
||||
it "allows append mode ('a+')" do
|
||||
mktmpdir do |tmpdir|
|
||||
file = tmpdir/"file.txt"
|
||||
file = PathnameCopy.new(tmpdir/"file.txt")
|
||||
file.write(file_content)
|
||||
expect do
|
||||
file.write(" again", mode: "a+")
|
||||
|
Loading…
x
Reference in New Issue
Block a user