Test scenario form creating a custom field with empty name, other for check how the fallback name is set.

pull/1320/head
slawa 11 years ago
parent e42834654f
commit 371990e669
  1. 58
      spec/controllers/custom_fields_controller_spec.rb

@ -46,21 +46,23 @@ describe CustomFieldsController do
describe "WITH all ok params" do
let(:de_name) { "Ticket Feld" }
let(:en_name) { "Issue Field" }
let(:params) { { "custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" }, "1" => { "name" => en_name, "locale" => "en" } } } } }
let(:params) { { "custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" },
"1" => { "name" => en_name, "locale" => "en" } } } } }
before do
put :update, params
end
it { expect(response).to be_redirect }
it { expect(custom_field.name(:de)).to eq(de_name) }
it {expect(custom_field.name(:de)).to eq(de_name)}
it { expect(custom_field.name(:en)).to eq(en_name) }
end
describe "WITH one empty name params" do
let(:en_name) { "Issue Field" }
let(:de_name) { "" }
let(:params) { { "custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" }, "1" => { "name" => en_name, "locale" => "en" } } } } }
let(:params) { { "custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" },
"1" => { "name" => en_name, "locale" => "en" } } } } }
before do
put :update, params
@ -70,6 +72,7 @@ describe CustomFieldsController do
it { expect(custom_field.name(:de)).to eq(en_name) }
it { expect(custom_field.name(:en)).to eq(en_name) }
end
end
describe "POST new" do
@ -77,34 +80,71 @@ describe CustomFieldsController do
Setting.available_languages = ["de", "en"]
end
describe "WITH empty name param" do
let(:en_name) { "" }
let(:de_name) { "" }
let(:params) { { "type" => "WorkPackageCustomField",
"custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" },
"1" => { "name" => en_name, "locale" => "en" } } } } }
before do
post :create, params
end
it { expect(response).to render_template 'new' }
it { expect(assigns(:custom_field).errors.messages[:name].first).to eq "can't be blank" }
it { expect(assigns(:custom_field).translations).to be_empty }
end
describe "WITH all ok params" do
let(:de_name) { "Ticket Feld" }
let(:en_name) { "Issue Field" }
let(:params) { { "type" => "WorkPackageCustomField",
"custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" }, "1" => { "name" => en_name, "locale" => "en" } } } } }
"custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" },
"1" => { "name" => en_name, "locale" => "en" } } } } }
before do
post :create, params
end
it { expect(response).to be_success }
it { expect(assigns(:custom_field).name(:de)).to eq(de_name) }
it { expect(assigns(:custom_field).name(:en)).to eq(en_name) }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :de}[:name]).to eq(de_name) }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :en}[:name]).to eq(en_name) }
end
describe "WITH one empty name params" do
let(:en_name) { "Issue Field" }
let(:de_name) { "" }
let(:params) { { "type" => "WorkPackageCustomField",
"custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" }, "1" => { "name" => en_name, "locale" => "en" } } } } }
"custom_field" => { "translations_attributes" => { "0" => { "name" => de_name, "locale" => "de" },
"1" => { "name" => en_name, "locale" => "en" } } } } }
before do
post :create, params
end
it { expect(response).to be_success }
it { expect(assigns(:custom_field).name(:de)).to eq(en_name) }
it { expect(assigns(:custom_field).name(:en)).to eq(en_name) }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :de}).to be_nil }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :en}[:name]).to eq(en_name) }
end
describe "WITH different language and default_value params" do
let(:en_name) { "Issue Field" }
let(:en_default) { "EN Default Value" }
let(:de_name) { "" }
let(:de_default) { "DE Default Value" }
let(:params) { { "type" => "WorkPackageCustomField",
"custom_field" => { "translations_attributes" =>
{ "0" => { "name" => de_name, "locale" => "de", "default_value" => de_default },
"1" => { "name" => en_name, "locale" => "en", "default_value" => '' }}}}}
before do
post :create, params
end
it { expect(response).to be_success }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :de}[:name]).to eq(en_name) }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :en}[:name]).to eq(en_name) }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :en}[:default_value]).to be_nil }
it { expect(assigns(:custom_field).translations.find{|elem| elem.locale == :de}[:default_value]).to eq(de_default) }
end
end
end

Loading…
Cancel
Save