Skip to content

Commit a716962

Browse files
committed
[io grant] Amend rules for last part in IO::Path.resolve
Allow last part of path to not exist when using .resolve: :completely; The resolution is still successful, and this lets us .resolve(:completely) paths that we're about to create.
1 parent 35402f6 commit a716962

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

S32-io/io-path.t

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ subtest '.concat-with' => {
131131
}
132132

133133
subtest '.resolve' => {
134-
plan 4;
134+
plan 5;
135135

136136
my $root = make-temp-dir;
137137
sub p { $root.concat-with: $^path }
@@ -141,7 +141,7 @@ subtest '.resolve' => {
141141
p('not-there').absolute,
142142
".resolve() cleans up paths it can't resolve";
143143

144-
fails-like { p('level1a/../not-there').resolve(:completely) },
144+
fails-like { p('level1a/../not-there/foo').resolve(:completely) },
145145
X::IO::Resolve, '.resolve(:completely) fails with X::IO::Resolve';
146146

147147
is-deeply
@@ -155,6 +155,10 @@ subtest '.resolve' => {
155155
~ '../level2b/level3a').resolve(:completely).absolute,
156156
p('level1c/level2b/level3a').absolute,
157157
".resolve(:completely) cleans up paths it can resolve";
158+
159+
is-deeply p('level1a/../not-there').resolve(:completely).absolute,
160+
p('not-there').absolute,
161+
'.resolve(:completely) succeeds even when last part does not exist';
158162
}
159163

160164
subtest '.link' => {

0 commit comments

Comments
 (0)