spec/apidoco/folder_parser_spec.rb in apidoco-1.6.0 vs spec/apidoco/folder_parser_spec.rb in apidoco-1.6.1
- old
+ new
@@ -6,13 +6,11 @@
Tempfile.new.tap do |f|
f.write(doc.to_json)
f.rewind
end
end
- let(:directory) do
- double(basename: 'users', children: [file])
- end
+ let(:directory) { double(basename: 'users', children: [file]) }
let(:folder_parser) { described_class.new(directory, parents: []) }
after do
file.close
file.unlink
@@ -30,10 +28,37 @@
describe 'name' do
it { is_expected.to include(name: 'Users') }
end
describe 'children' do
- it { expect(as_json[:children].first).to include(id: 'users-createuser', 'name' => 'Create User') }
+ let(:sub_directory1) { double(basename: 'roles', children: [], directory?: true) }
+ let(:sub_directory2) { double(basename: 'departments', children: [], directory?: true) }
+ let(:file1) { file }
+ let(:file2) do
+ Tempfile.new.tap do |f|
+ f.write({ name: 'Delete User' }.to_json)
+ f.rewind
+ end
+ end
+
+ before { allow(file2).to receive(:directory?).and_return(false) }
+
+ after do
+ file2.close
+ file2.unlink
+ end
+
+ let(:directory) do
+ double(basename: 'users', children: [file1, file2, sub_directory1, sub_directory2])
+ end
+
+ it 'sorts the files and folders based on the sort order' do
+ expect(as_json).to include(name: 'Users')
+ expect(as_json[:children][0][:name]).to eq('Departments')
+ expect(as_json[:children][1][:name]).to eq('Roles')
+ expect(as_json[:children][2]['name']).to eq('Create User')
+ expect(as_json[:children][3]['name']).to eq('Delete User')
+ end
end
end
describe '#base_name' do
subject(:basename) { folder_parser.basename }