- |
- <%= administrator.name %>
- |
-
- <%= administrator.email %>
- |
+ <%= administrator.name %> |
+ <%= administrator.email %> |
<% if administrator.persisted? %>
<%= link_to t('admin.administrators.administrator.delete'),
admin_administrator_path(administrator),
method: :delete,
- class: "button hollow alert"
- %>
+ class: "button hollow alert" %>
<% else %>
<%= link_to t('admin.administrators.administrator.add'),
- { controller: "admin/administrators", action: :create,
+ { controller: "admin/administrators",
+ action: :create,
user_id: administrator.user_id },
method: :post,
class: "button success" %>
diff --git a/app/views/admin/administrators/search.html.erb b/app/views/admin/administrators/search.html.erb
new file mode 100644
index 000000000..3f3c269f1
--- /dev/null
+++ b/app/views/admin/administrators/search.html.erb
@@ -0,0 +1,29 @@
+<%= t("admin.administrators.search.title") %>
+
+<%= render 'admin/shared/user_search', url: search_admin_administrators_path %>
+
+<%= page_entries_info @users %>
+
+
+ <% @users.each do |user| %>
+
+ | <%= user.name %> |
+ <%= user.email %> |
+
+ <% if user.administrator? && user.administrator.persisted? %>
+ <%= link_to t('admin.administrators.administrator.delete'),
+ admin_administrator_path(user),
+ method: :delete,
+ class: "button hollow alert" %>
+ <% else %>
+ <%= link_to t('admin.administrators.administrator.add'),
+ { controller: "admin/administrators",
+ action: :create,
+ user_id: user },
+ method: :post,
+ class: "button success" %>
+ <% end %>
+ |
+
+ <% end %>
+
diff --git a/app/views/admin/administrators/search.js.erb b/app/views/admin/administrators/search.js.erb
deleted file mode 100644
index 1c30d9595..000000000
--- a/app/views/admin/administrators/search.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j render 'administrator', administrator: @administrator %>");
diff --git a/app/views/admin/administrators/user_not_found.js.erb b/app/views/admin/administrators/user_not_found.js.erb
deleted file mode 100644
index ba707fc9d..000000000
--- a/app/views/admin/administrators/user_not_found.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j t('admin.administrators.search.user_not_found') %> ");
diff --git a/app/views/admin/managers/_manager.html.erb b/app/views/admin/managers/_manager.html.erb
deleted file mode 100644
index 3e709eb60..000000000
--- a/app/views/admin/managers/_manager.html.erb
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- |
- <%= manager.name %>
- |
-
- <%= manager.email %>
- |
-
- <% if manager.persisted? %>
- <%= link_to t('admin.managers.manager.delete'),
- admin_manager_path(manager),
- method: :delete,
- class: "button hollow alert"
- %>
- <% else %>
- <%= link_to t('admin.managers.manager.add'),{ controller: "admin/managers", action: :create, user_id: manager.user_id },
- method: :post, class: "button success" %>
- <% end %>
- |
-
-
-
diff --git a/app/views/admin/managers/index.html.erb b/app/views/admin/managers/index.html.erb
index d479ba303..2291f8384 100644
--- a/app/views/admin/managers/index.html.erb
+++ b/app/views/admin/managers/index.html.erb
@@ -1,39 +1,27 @@
<%= t("admin.managers.index.title") %>
-
- <%= form_tag search_admin_managers_path, method: :get, remote: true do %>
-
- <%= text_field_tag :email, '', placeholder: t('admin.managers.search.email_placeholder') %>
-
-
- <%= submit_tag t('admin.managers.search.search'), class: 'button' %>
-
- <% end %>
-
-
-
+<%= render 'admin/shared/user_search', url: search_admin_managers_path %>
<%= page_entries_info @managers %>
<% @managers.each do |manager| %>
- |
- <%= manager.name %>
- |
-
- <%= manager.email %>
- |
+ <%= manager.name %> |
+ <%= manager.email %> |
<% if manager.persisted? %>
<%= link_to t('admin.managers.manager.delete'),
- admin_manager_path(manager),
- method: :delete,
- class: "button hollow alert"
- %>
+ admin_manager_path(manager),
+ method: :delete,
+ class: "button hollow alert" %>
<% else %>
- <%= link_to t('admin.managers.manager.add'),{ controller: "admin/managers", action: :create, user_id: manager.user_id },
- method: :post, class: "button success" %>
+ <%= link_to t('admin.managers.manager.add'),
+ { controller: "admin/managers",
+ action: :create,
+ user_id: manager.user_id },
+ method: :post,
+ class: "button success" %>
<% end %>
|
diff --git a/app/views/admin/managers/search.html.erb b/app/views/admin/managers/search.html.erb
new file mode 100644
index 000000000..c6ea3c2cd
--- /dev/null
+++ b/app/views/admin/managers/search.html.erb
@@ -0,0 +1,29 @@
+<%= t("admin.managers.search.title") %>
+
+<%= render 'admin/shared/user_search', url: search_admin_managers_path %>
+
+<%= page_entries_info @users %>
+
+
+ <% @users.each do |user| %>
+
+ | <%= user.name %> |
+ <%= user.email %> |
+
+ <% if user.manager? && user.manager.persisted? %>
+ <%= link_to t('admin.managers.manager.delete'),
+ admin_manager_path(user),
+ method: :delete,
+ class: "button hollow alert" %>
+ <% else %>
+ <%= link_to t('admin.managers.manager.add'),
+ { controller: "admin/managers",
+ action: :create,
+ user_id: user },
+ method: :post,
+ class: "button success" %>
+ <% end %>
+ |
+
+ <% end %>
+
diff --git a/app/views/admin/managers/search.js.erb b/app/views/admin/managers/search.js.erb
deleted file mode 100644
index e54b84293..000000000
--- a/app/views/admin/managers/search.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j render 'manager', manager: @manager %>");
diff --git a/app/views/admin/managers/user_not_found.js.erb b/app/views/admin/managers/user_not_found.js.erb
deleted file mode 100644
index 53e9d7e20..000000000
--- a/app/views/admin/managers/user_not_found.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j t('admin.managers.search.user_not_found') %> ");
diff --git a/app/views/admin/moderators/_moderator.html.erb b/app/views/admin/moderators/_moderator.html.erb
deleted file mode 100644
index 57a29d2e8..000000000
--- a/app/views/admin/moderators/_moderator.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- |
- <%= moderator.name %>
- |
-
- <%= moderator.email %>
- |
-
- <% if moderator.persisted? %>
- <%= link_to t('admin.moderators.moderator.delete'),
- admin_moderator_path(moderator),
- method: :delete,
- class: "button hollow alert" %>
- <% else %>
- <%= link_to t('admin.moderators.moderator.add'),{ controller: "admin/moderators", action: :create, user_id: moderator.user_id },
- method: :post,
- class: "button success" %>
- <% end %>
- |
-
-
-
-
diff --git a/app/views/admin/moderators/index.html.erb b/app/views/admin/moderators/index.html.erb
index 0fc8703fd..735a193ff 100644
--- a/app/views/admin/moderators/index.html.erb
+++ b/app/views/admin/moderators/index.html.erb
@@ -2,30 +2,15 @@
<%= t("admin.moderators.index.title") %>
-
- <%= form_tag search_admin_moderators_path, method: :get, remote: true do %>
-
- <%= text_field_tag :email, '', placeholder: t('admin.moderators.search.email_placeholder') %>
-
-
- <%= submit_tag t('admin.moderators.search.search'), class: 'button' %>
-
- <% end %>
-
-
-
+<%= render 'admin/shared/user_search', url: search_admin_moderators_path %>
<%= page_entries_info @moderators %>
<% @moderators.each do |moderator| %>
- |
- <%= moderator.name %>
- |
-
- <%= moderator.email %>
- |
+ <%= moderator.name %> |
+ <%= moderator.email %> |
<% if moderator.persisted? %>
<%= link_to t('admin.moderators.moderator.delete'),
@@ -35,7 +20,8 @@
%>
<% else %>
<%= link_to t('admin.moderators.moderator.add'),
- { controller: "admin/moderators", action: :create,
+ { controller: "admin/moderators",
+ action: :create,
user_id: moderator.user_id },
method: :post,
class: "button success" %>
diff --git a/app/views/admin/moderators/search.html.erb b/app/views/admin/moderators/search.html.erb
new file mode 100644
index 000000000..89e9dc9a7
--- /dev/null
+++ b/app/views/admin/moderators/search.html.erb
@@ -0,0 +1,29 @@
+<%= t("admin.moderators.search.title") %>
+
+<%= render 'admin/shared/user_search', url: search_admin_moderators_path %>
+
+<%= page_entries_info @users %>
+
+
+ <% @users.each do |user| %>
+
+ | <%= user.name %> |
+ <%= user.email %> |
+
+ <% if user.moderator? && user.moderator.persisted? %>
+ <%= link_to t('admin.moderators.moderator.delete'),
+ admin_moderator_path(user),
+ method: :delete,
+ class: "button hollow alert" %>
+ <% else %>
+ <%= link_to t('admin.moderators.moderator.add'),
+ { controller: "admin/moderators",
+ action: :create,
+ user_id: user },
+ method: :post,
+ class: "button success" %>
+ <% end %>
+ |
+
+ <% end %>
+
diff --git a/app/views/admin/moderators/search.js.erb b/app/views/admin/moderators/search.js.erb
deleted file mode 100644
index 887d8aa3a..000000000
--- a/app/views/admin/moderators/search.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j render 'moderator', moderator: @moderator %>");
diff --git a/app/views/admin/moderators/user_not_found.js.erb b/app/views/admin/moderators/user_not_found.js.erb
deleted file mode 100644
index a8573236c..000000000
--- a/app/views/admin/moderators/user_not_found.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j t('admin.moderators.search.user_not_found') %> ");
diff --git a/app/views/admin/valuators/_valuator.html.erb b/app/views/admin/valuators/_valuator.html.erb
deleted file mode 100644
index e5971391b..000000000
--- a/app/views/admin/valuators/_valuator.html.erb
+++ /dev/null
@@ -1,28 +0,0 @@
-
- <%= t('admin.valuators.valuator.user_found') %>
-
-
-
- |
- <%= valuator.name %>
- |
-
- <%= valuator.email %>
- |
-
-
-
- <% unless @valuator.persisted? %>
- <%= form_for @valuator, url: admin_valuators_path do |f| %>
-
-
- <%= f.text_field :description, label: false, placeholder: t('admin.valuators.valuator.description_placeholder') %>
- <%= f.hidden_field :user_id %>
-
-
- <%= f.submit t('admin.valuators.valuator.add'), class: "button success float-left" %>
-
-
- <% end %>
- <% end %>
-
diff --git a/app/views/admin/valuators/index.html.erb b/app/views/admin/valuators/index.html.erb
index 30132e66f..d496b1ecd 100644
--- a/app/views/admin/valuators/index.html.erb
+++ b/app/views/admin/valuators/index.html.erb
@@ -1,34 +1,15 @@
<%= t("admin.valuators.index.title") %>
-
- <%= form_tag search_admin_valuators_path, method: :get, remote: true do %>
-
- <%= text_field_tag :email, '', placeholder: t('admin.valuators.search.email_placeholder') %>
-
-
- <%= submit_tag t('admin.valuators.search.search'), class: 'button radius' %>
-
- <% end %>
-
-
-
+<%= render 'admin/shared/user_search', url: search_admin_valuators_path %>
<%= page_entries_info @valuators %>
<% @valuators.each do |valuator| %>
- |
- <%= valuator.name %>
- |
-
- <%= valuator.email %>
- |
-
- <% if valuator.description.present? %>
- <%= valuator.description %>
- <% end %>
- |
+ <%= valuator.name %> |
+ <%= valuator.email %> |
+ <%= valuator.description if valuator.description.present? %> |
<% end %>
diff --git a/app/views/admin/valuators/search.html.erb b/app/views/admin/valuators/search.html.erb
new file mode 100644
index 000000000..4663a944b
--- /dev/null
+++ b/app/views/admin/valuators/search.html.erb
@@ -0,0 +1,27 @@
+<%= t("admin.valuators.search.title") %>
+
+<%= render 'admin/shared/user_search', url: search_admin_valuators_path %>
+
+<%= page_entries_info @users %>
+
+
+ <% @users.each do |user| %>
+
+ | <%= user.name %> |
+ <%= user.email %> |
+
+ <% if user.valuator? && user.valuator.description.present? %>
+ <%= user.valuator.description %>
+ <% else %>
+ <%= form_for Valuator.new(user: user), url: admin_valuators_path do |f| %>
+ <%= f.text_field :description,
+ label: false,
+ placeholder: t("admin.valuators.valuator.description_placeholder") %>
+ <%= f.hidden_field :user_id %>
+ <%= f.submit t("admin.valuators.valuator.add"), class: "button success float-left" %>
+ <% end %>
+ <% end %>
+ |
+
+ <% end %>
+
diff --git a/app/views/admin/valuators/search.js.erb b/app/views/admin/valuators/search.js.erb
deleted file mode 100644
index 4068c146e..000000000
--- a/app/views/admin/valuators/search.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j render 'valuator', valuator: @valuator %>");
diff --git a/app/views/admin/valuators/user_not_found.js.erb b/app/views/admin/valuators/user_not_found.js.erb
deleted file mode 100644
index af3f83a3f..000000000
--- a/app/views/admin/valuators/user_not_found.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$("#search-result").html("<%= j t('admin.valuators.search.user_not_found') %> ");
diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml
index 50e0b84ff..b44179ab2 100644
--- a/config/locales/en/admin.yml
+++ b/config/locales/en/admin.yml
@@ -386,9 +386,7 @@ en:
add: Add
delete: Delete
search:
- email_placeholder: Search user by email
- search: Search
- user_not_found: User not found
+ title: 'Managers: User search'
menu:
activity: Moderator activity
admin: Admin menu
@@ -438,9 +436,7 @@ en:
delete: Delete
restricted_removal: "Sorry, you can't remove yourself from the administrators"
search:
- email_placeholder: Search user by email
- search: Search
- user_not_found: User not found
+ title: 'Administrators: User search'
moderators:
index:
title: Moderators
@@ -448,9 +444,7 @@ en:
add: Add
delete: Delete
search:
- email_placeholder: Search user by email
- search: Search
- user_not_found: User not found
+ title: 'Moderators: User search'
newsletters:
index:
title: Newsletters
@@ -460,12 +454,9 @@ en:
title: Valuators
valuator:
description_placeholder: 'Description (optional)'
- user_found: User found
add: Add to valuators
search:
- email_placeholder: Search user by email
- search: Search
- user_not_found: User not found
+ title: 'Valuators: User search'
summary:
title: Valuator summary for investment projects
valuator_name: Valuator
diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml
index 76747ecf2..53e01b38b 100644
--- a/config/locales/es/admin.yml
+++ b/config/locales/es/admin.yml
@@ -387,9 +387,7 @@ es:
delete: Borrar
restricted_removal: "Lo sentimos, no puedes eliminarte a ti mismo de la lista"
search:
- email_placeholder: Buscar usuario por email
- search: Buscar
- user_not_found: Usuario no encontrado
+ title: 'Administradores: Búsqueda de usuarios'
managers:
index:
title: Gestores
@@ -397,9 +395,7 @@ es:
add: Añadir como Gestor
delete: Borrar
search:
- email_placeholder: Buscar usuario por email
- search: Buscar
- user_not_found: Usuario no encontrado
+ title: 'Gestores: Búsqueda de usuarios'
menu:
activity: Actividad de moderadores
admin: Menú de administración
@@ -448,9 +444,7 @@ es:
add: Añadir como Moderador
delete: Borrar
search:
- email_placeholder: Buscar usuario por email
- search: Buscar
- user_not_found: Usuario no encontrado
+ title: 'Moderadores: Búsqueda de usuarios'
newsletters:
index:
title: Envío de newsletters
@@ -460,12 +454,9 @@ es:
title: Evaluadores
valuator:
description_placeholder: "Descripción (opcional)"
- user_found: Usuario encontrado
add: Añadir como evaluador
search:
- email_placeholder: Buscar usuario por email
- search: Buscar
- user_not_found: Usuario no encontrado
+ title: 'Evaluadores: Búsqueda de usuarios'
summary:
title: Resumen de evaluación de propuestas de inversión
valuator_name: Evaluador
diff --git a/spec/features/admin/administrators_spec.rb b/spec/features/admin/administrators_spec.rb
index bef57b75d..4e2091d11 100644
--- a/spec/features/admin/administrators_spec.rb
+++ b/spec/features/admin/administrators_spec.rb
@@ -16,7 +16,7 @@ feature 'Admin administrators' do
end
scenario 'Create Administrator', :js do
- fill_in 'email', with: @user.email
+ fill_in 'name_or_email', with: @user.email
click_button 'Search'
expect(page).to have_content @user.name
@@ -41,5 +41,53 @@ feature 'Admin administrators' do
expect(page).to have_content I18n.t("admin.administrators.administrator.restricted_removal")
end
end
-end
+ context 'Search' do
+
+ background do
+ user = create(:user, username: 'Bernard Sumner', email: 'bernard@sumner.com')
+ user2 = create(:user, username: 'Tony Soprano', email: 'tony@soprano.com')
+ @administrator1 = create(:administrator, user: user)
+ @administrator2 = create(:administrator, user: user2)
+ visit admin_administrators_path
+ end
+
+ scenario 'returns no results if search term is empty' do
+ expect(page).to have_content(@administrator1.name)
+ expect(page).to have_content(@administrator2.name)
+
+ fill_in 'name_or_email', with: ' '
+ click_button 'Search'
+
+ expect(page).to have_content('Administrators: User search')
+ expect(page).to have_content('users cannot be found')
+ expect(page).to_not have_content(@administrator1.name)
+ expect(page).to_not have_content(@administrator2.name)
+ end
+
+ scenario 'search by name' do
+ expect(page).to have_content(@administrator1.name)
+ expect(page).to have_content(@administrator2.name)
+
+ fill_in 'name_or_email', with: 'Sumn'
+ click_button 'Search'
+
+ expect(page).to have_content('Administrators: User search')
+ expect(page).to have_content(@administrator1.name)
+ expect(page).to_not have_content(@administrator2.name)
+ end
+
+ scenario 'search by email' do
+ expect(page).to have_content(@administrator1.email)
+ expect(page).to have_content(@administrator2.email)
+
+ fill_in 'name_or_email', with: @administrator2.email
+ click_button 'Search'
+
+ expect(page).to have_content('Administrators: User search')
+ expect(page).to have_content(@administrator2.email)
+ expect(page).to_not have_content(@administrator1.email)
+ end
+ end
+
+end
diff --git a/spec/features/admin/managers_spec.rb b/spec/features/admin/managers_spec.rb
index 54b8cc77a..5fe1b3892 100644
--- a/spec/features/admin/managers_spec.rb
+++ b/spec/features/admin/managers_spec.rb
@@ -16,7 +16,7 @@ feature 'Admin managers' do
end
scenario 'Create Manager', :js do
- fill_in 'email', with: @user.email
+ fill_in 'name_or_email', with: @user.email
click_button 'Search'
expect(page).to have_content @user.name
@@ -34,4 +34,52 @@ feature 'Admin managers' do
end
end
-end
\ No newline at end of file
+ context 'Search' do
+
+ background do
+ user = create(:user, username: 'Taylor Swift', email: 'taylor@swift.com')
+ user2 = create(:user, username: 'Stephanie Corneliussen', email: 'steph@mrrobot.com')
+ @manager1 = create(:manager, user: user)
+ @manager2 = create(:manager, user: user2)
+ visit admin_managers_path
+ end
+
+ scenario 'returns no results if search term is empty' do
+ expect(page).to have_content(@manager1.name)
+ expect(page).to have_content(@manager2.name)
+
+ fill_in 'name_or_email', with: ' '
+ click_button 'Search'
+
+ expect(page).to have_content('Managers: User search')
+ expect(page).to have_content('users cannot be found')
+ expect(page).to_not have_content(@manager1.name)
+ expect(page).to_not have_content(@manager2.name)
+ end
+
+ scenario 'search by name' do
+ expect(page).to have_content(@manager1.name)
+ expect(page).to have_content(@manager2.name)
+
+ fill_in 'name_or_email', with: 'Taylor'
+ click_button 'Search'
+
+ expect(page).to have_content('Managers: User search')
+ expect(page).to have_content(@manager1.name)
+ expect(page).to_not have_content(@manager2.name)
+ end
+
+ scenario 'search by email' do
+ expect(page).to have_content(@manager1.email)
+ expect(page).to have_content(@manager2.email)
+
+ fill_in 'name_or_email', with: @manager2.email
+ click_button 'Search'
+
+ expect(page).to have_content('Managers: User search')
+ expect(page).to have_content(@manager2.email)
+ expect(page).to_not have_content(@manager1.email)
+ end
+ end
+
+end
diff --git a/spec/features/admin/moderators_spec.rb b/spec/features/admin/moderators_spec.rb
index e8e29b182..2c2994d62 100644
--- a/spec/features/admin/moderators_spec.rb
+++ b/spec/features/admin/moderators_spec.rb
@@ -16,7 +16,7 @@ feature 'Admin moderators' do
end
scenario 'Create Moderator', :js do
- fill_in 'email', with: @user.email
+ fill_in 'name_or_email', with: @user.email
click_button 'Search'
expect(page).to have_content @user.name
@@ -33,5 +33,53 @@ feature 'Admin moderators' do
expect(page).to_not have_content @moderator.name
end
end
-end
+ context 'Search' do
+
+ background do
+ user = create(:user, username: 'Elizabeth Bathory', email: 'elizabeth@bathory.com')
+ user2 = create(:user, username: 'Ada Lovelace', email: 'ada@lovelace.com')
+ @moderator1 = create(:moderator, user: user)
+ @moderator2 = create(:moderator, user: user2)
+ visit admin_moderators_path
+ end
+
+ scenario 'returns no results if search term is empty' do
+ expect(page).to have_content(@moderator1.name)
+ expect(page).to have_content(@moderator2.name)
+
+ fill_in 'name_or_email', with: ' '
+ click_button 'Search'
+
+ expect(page).to have_content('Moderators: User search')
+ expect(page).to have_content('users cannot be found')
+ expect(page).to_not have_content(@moderator1.name)
+ expect(page).to_not have_content(@moderator2.name)
+ end
+
+ scenario 'search by name' do
+ expect(page).to have_content(@moderator1.name)
+ expect(page).to have_content(@moderator2.name)
+
+ fill_in 'name_or_email', with: 'Eliz'
+ click_button 'Search'
+
+ expect(page).to have_content('Moderators: User search')
+ expect(page).to have_content(@moderator1.name)
+ expect(page).to_not have_content(@moderator2.name)
+ end
+
+ scenario 'search by email' do
+ expect(page).to have_content(@moderator1.email)
+ expect(page).to have_content(@moderator2.email)
+
+ fill_in 'name_or_email', with: @moderator2.email
+ click_button 'Search'
+
+ expect(page).to have_content('Moderators: User search')
+ expect(page).to have_content(@moderator2.email)
+ expect(page).to_not have_content(@moderator1.email)
+ end
+ end
+
+end
diff --git a/spec/features/admin/valuators_spec.rb b/spec/features/admin/valuators_spec.rb
index d95432474..86f2c89e9 100644
--- a/spec/features/admin/valuators_spec.rb
+++ b/spec/features/admin/valuators_spec.rb
@@ -2,32 +2,79 @@ require 'rails_helper'
feature 'Admin valuators' do
background do
- @admin = create(:administrator)
- @user = create(:user, username: 'Jose Luis Balbin')
+ @admin = create(:administrator)
+ @user = create(:user, username: 'Jose Luis Balbin')
@valuator = create(:valuator)
login_as(@admin.user)
visit admin_valuators_path
end
scenario 'Index' do
- expect(page).to have_content @valuator.name
- expect(page).to have_content @valuator.email
- expect(page).to_not have_content @user.name
+ expect(page).to have_content(@valuator.name)
+ expect(page).to have_content(@valuator.email)
+ expect(page).to_not have_content(@user.name)
end
scenario 'Create Valuator', :js do
- fill_in 'email', with: @user.email
+ fill_in 'name_or_email', with: @user.email
click_button 'Search'
- expect(page).to have_content @user.name
+ expect(page).to have_content(@user.name)
fill_in 'valuator_description', with: 'environmental expert'
click_button 'Add to valuators'
- within("#valuators") do
- expect(page).to have_content @user.name
- expect(page).to have_content 'environmental expert'
+ within('#valuators') do
+ expect(page).to have_content(@user.name)
+ expect(page).to have_content('environmental expert')
+ end
+ end
+
+ context 'Search' do
+
+ background do
+ user = create(:user, username: 'David Foster Wallace', email: 'david@wallace.com')
+ user2 = create(:user, username: 'Steven Erikson', email: 'steven@erikson.com')
+ @valuator1 = create(:valuator, user: user)
+ @valuator2 = create(:valuator, user: user2)
+ visit admin_valuators_path
+ end
+
+ scenario 'returns no results if search term is empty' do
+ expect(page).to have_content(@valuator1.name)
+ expect(page).to have_content(@valuator2.name)
+
+ fill_in 'name_or_email', with: ' '
+ click_button 'Search'
+
+ expect(page).to have_content('Valuators: User search')
+ expect(page).to have_content('users cannot be found')
+ expect(page).to_not have_content(@valuator1.name)
+ expect(page).to_not have_content(@valuator2.name)
+ end
+
+ scenario 'search by name' do
+ expect(page).to have_content(@valuator1.name)
+ expect(page).to have_content(@valuator2.name)
+
+ fill_in 'name_or_email', with: 'Foster'
+ click_button 'Search'
+
+ expect(page).to have_content('Valuators: User search')
+ expect(page).to have_content(@valuator1.name)
+ expect(page).to_not have_content(@valuator2.name)
+ end
+
+ scenario 'search by email' do
+ expect(page).to have_content(@valuator1.email)
+ expect(page).to have_content(@valuator2.email)
+
+ fill_in 'name_or_email', with: @valuator2.email
+ click_button 'Search'
+
+ expect(page).to have_content('Valuators: User search')
+ expect(page).to have_content(@valuator2.email)
+ expect(page).to_not have_content(@valuator1.email)
end
end
end
-
| |