Commit ac00009f authored by Felipe Artur's avatar Felipe Artur

Allow to delete tag release note

parent 10d4b20a
......@@ -10,7 +10,14 @@ class Projects::ReleasesController < Projects::ApplicationController
end
def update
release.update_attributes(release_params)
# Release belongs to Tag which is not active record object,
# it exists only to save a description to each Tag.
# If description is empty we should destroy the existing record.
if release_params[:description].present?
release.update_attributes(release_params)
else
release.destroy
end
redirect_to namespace_project_tag_path(@project.namespace, @project, @tag.name)
end
......
---
title: Allow to delete tag release note
merge_request:
author:
require 'spec_helper'
describe Projects::ReleasesController do
let!(:project) { create(:project) }
let!(:user) { create(:user) }
let!(:release) { create(:release, project: project) }
let!(:tag) { release.tag }
before do
project.team << [user, :developer]
sign_in(user)
end
describe 'GET #edit' do
it 'initializes a new release' do
tag_id = release.tag
project.releases.destroy_all
get :edit, namespace_id: project.namespace.path, project_id: project.path, tag_id: tag_id
release = assigns(:release)
expect(release).not_to be_nil
expect(release).not_to be_persisted
end
it 'retrieves an existing release' do
get :edit, namespace_id: project.namespace.path, project_id: project.path, tag_id: release.tag
release = assigns(:release)
expect(release).not_to be_nil
expect(release).to be_persisted
end
end
describe 'PUT #update' do
it 'updates release note description' do
update_release('description updated')
release = project.releases.find_by_tag(tag)
expect(release.description).to eq("description updated")
end
it 'deletes release note when description is null' do
expect { update_release('') }.to change(project.releases, :count).by(-1)
end
end
def update_release(description)
put :update,
namespace_id: project.namespace.to_param,
project_id: project.to_param,
tag_id: release.tag,
release: { description: description }
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment