diff --git a/spec/lib/gitlab/string_path_spec.rb b/spec/lib/gitlab/string_path_spec.rb
index 86e48f6ee0b92fa6b50064fb500a205be5d4ada4..d086a0117632bcbdc1c3949d5a2b52e1f1dd01ba 100644
--- a/spec/lib/gitlab/string_path_spec.rb
+++ b/spec/lib/gitlab/string_path_spec.rb
@@ -6,6 +6,8 @@ describe Gitlab::StringPath do
      'path/dir_1/',
      'path/dir_1/file_1',
      'path/dir_1/file_b',
+     'path/dir_1/subdir/',
+     'path/dir_1/subdir/subfile',
      'path/second_dir',
      'path/second_dir/dir_3/file_2',
      'path/second_dir/dir_3/file_3',
@@ -13,8 +15,12 @@ describe Gitlab::StringPath do
      '/file/with/absolute_path']
   end
 
-  describe '/file/with/absolute_path' do
-    subject { described_class.new('/file/with/absolute_path', universe) }
+  def path(example)
+    described_class.new(example.metadata[:path], universe)
+  end
+
+  describe '/file/with/absolute_path', path: '/file/with/absolute_path' do
+    subject { |example| path(example) }
 
     it { is_expected.to be_absolute } 
     it { is_expected.to_not be_relative }
@@ -22,26 +28,27 @@ describe Gitlab::StringPath do
     it { is_expected.to_not have_parent }
 
     describe '#basename' do
-      subject { described_class.new('/file/with/absolute_path', universe).basename }
+      subject { |example| path(example).basename }
 
       it { is_expected.to eq 'absolute_path' }
     end
   end
 
-  describe 'path/' do
-    subject { described_class.new('path/', universe) }
+  describe 'path/', path: 'path/' do
+    subject { |example| path(example) }
 
     it { is_expected.to be_directory }
     it { is_expected.to be_relative }
     it { is_expected.to_not have_parent }
   end
 
-  describe 'path/dir_1/' do
-    subject { described_class.new('path/dir_1/', universe) }
+  describe 'path/dir_1/', path: 'path/dir_1/' do
+    subject { |example| path(example) }
+
     it { is_expected.to have_parent }
 
     describe '#files' do
-      subject { described_class.new('path/dir_1/', universe).files }
+      subject { |example| path(example).files }
 
       pending { is_expected.to all(be_an_instance_of described_class) }
       pending { is_expected.to be eq [Gitlab::StringPath.new('path/dir_1/file_1', universe),
@@ -49,12 +56,14 @@ describe Gitlab::StringPath do
     end
 
     describe '#basename' do
-      subject { described_class.new('path/dir_1/', universe).basename }
+      subject { |example| path(example).basename }
+
       it { is_expected.to eq 'dir_1/' }
     end
 
     describe '#parent' do
-      subject { described_class.new('path/dir_1/', universe).parent }
+      subject { |example| path(example).parent }
+
       it { is_expected.to eq Gitlab::StringPath.new('path/', universe) }
     end
   end