spec/integration/folder_operations_spec.rb in rmega-0.1.3 vs spec/integration/folder_operations_spec.rb in rmega-0.1.4

- old
+ new

@@ -3,40 +3,60 @@ describe 'Folders operations' do if account_file_exists? before(:all) do - @name = "test_folder_#{rand.denominator}_#{rand.denominator}" + @name = "folder_#{rand.denominator}_#{rand.denominator}" + @sub_folder_name = "folder_#{rand.denominator}_#{rand.denominator}" @storage = login end - def find_folder - @storage.root.folders.find { |f| f.name == @name } + # Note: node searching is traversal + def find_folder(name) + @storage.nodes.find { |f| f.type == :folder && f.name == name } end context 'when #create_folder is called on a node' do it 'creates a new folder under that node' do folder = @storage.root.create_folder(@name) expect(folder.name).to eql @name + expect(folder.parent_handle).to eq @storage.root.handle end end context 'searching for a folder by its name' do it 'returns the matching folder' do - expect(find_folder.name).to eql @name + expect(find_folder(@name).name).to eql @name end end + context "when #create_folder under created folder" do + + it "creates a new folder under created folder" do + parent_folder = find_folder(@name) + + sub_folder = parent_folder.create_folder(@sub_folder_name) + + expect(parent_folder.folders.first.name).to eql @sub_folder_name + expect(sub_folder.parent_handle).to eql parent_folder.handle + end + end + context 'when #delete is called on a folder node' do + it 'deletes sub folder' do + expect(find_folder(@sub_folder_name).delete).to eql 0 + end + it 'deletes the folder' do - expect(find_folder.delete).to eql 0 + expect(find_folder(@name).delete).to eql 0 end - it 'does not find the folder anymore' do - expect(find_folder).to be_nil + it 'does not find the folder (and its subfolder) anymore' do + expect(find_folder(@name)).to be_nil + expect(find_folder(@sub_folder_name)).to be_nil end end end end