sunrise-cms 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +49 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +3 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.rdoc +13 -3
- data/Gemfile +11 -22
- data/Gemfile.lock +344 -214
- data/README.md +47 -33
- data/Rakefile +1 -0
- data/app/assets/config/manifest.js +1 -0
- data/app/assets/images/sunrise/icons/export.svg +4 -0
- data/app/assets/images/sunrise/icons/import.svg +5 -0
- data/app/assets/javascripts/sunrise/application.js +2 -5
- data/app/assets/javascripts/sunrise/jquery.dialog.js.coffee +113 -40
- data/app/assets/javascripts/sunrise/jquery.editable.js.coffee +21 -21
- data/app/assets/javascripts/sunrise/manage.js.coffee +29 -28
- data/app/assets/stylesheets/sunrise/application.css +0 -1
- data/app/assets/stylesheets/sunrise/customize.css +7 -4
- data/app/assets/stylesheets/sunrise/main.css +883 -606
- data/app/controllers/sunrise/manager_controller.rb +44 -7
- data/app/controllers/sunrise/settings_controller.rb +2 -3
- data/app/helpers/sunrise/structure_helper.rb +2 -2
- data/app/views/layouts/sunrise/application.html.erb +9 -6
- data/app/views/sunrise/manager/_field.html.erb +5 -5
- data/app/views/sunrise/manager/_form.html.erb +15 -15
- data/app/views/sunrise/manager/_header_edit.html.erb +3 -4
- data/app/views/sunrise/manager/_header_new.html.erb +3 -3
- data/app/views/sunrise/manager/_header_show.html.erb +9 -13
- data/app/views/sunrise/manager/_nested_field.html.erb +6 -6
- data/app/views/sunrise/manager/buttons/_export.html.erb +9 -2
- data/app/views/sunrise/manager/buttons/_import.html.erb +25 -0
- data/app/views/sunrise/manager/buttons/_sort.html.erb +3 -3
- data/app/views/sunrise/manager/edit.html.erb +1 -1
- data/app/views/sunrise/manager/new.html.erb +1 -1
- data/app/views/sunrise/manager/structures/thumbs/_record.html.erb +19 -16
- data/app/views/sunrise/manager/thumbs/_record.html.erb +26 -22
- data/app/views/sunrise/manager/tree/index.html.erb +1 -1
- data/app/views/sunrise/settings/_form.html.erb +5 -5
- data/app/views/sunrise/settings/_header_edit.html.erb +3 -4
- data/config/locales/sunrise/en.yml +35 -35
- data/config/locales/sunrise/ru.yml +35 -35
- data/config/locales/sunrise/uk.yml +35 -35
- data/config/routes.rb +1 -0
- data/db/migrate/20111216144515_create_assets.rb +1 -1
- data/db/migrate/20111216144915_create_structures.rb +1 -1
- data/db/migrate/20111216145015_create_users.rb +1 -1
- data/db/migrate/20120611095315_create_settings.rb +1 -1
- data/lib/generators/sunrise/templates/config/active_record/sunrise.rb +0 -4
- data/lib/generators/sunrise/templates/config/mongoid/sunrise.rb +0 -4
- data/lib/generators/sunrise/templates/models/active_record/attachment_file.rb +0 -2
- data/lib/generators/sunrise/templates/models/active_record/avatar.rb +0 -2
- data/lib/generators/sunrise/templates/models/active_record/picture.rb +0 -2
- data/lib/generators/sunrise/templates/models/active_record/position_type.rb +4 -4
- data/lib/generators/sunrise/templates/models/active_record/role_type.rb +5 -5
- data/lib/generators/sunrise/templates/models/active_record/settings.rb +14 -2
- data/lib/generators/sunrise/templates/models/active_record/structure_type.rb +6 -6
- data/lib/generators/sunrise/templates/models/mongoid/attachment_file.rb +0 -2
- data/lib/generators/sunrise/templates/models/mongoid/avatar.rb +0 -2
- data/lib/generators/sunrise/templates/models/mongoid/picture.rb +0 -2
- data/lib/generators/sunrise/templates/models/mongoid/position_type.rb +4 -4
- data/lib/generators/sunrise/templates/models/mongoid/role_type.rb +5 -5
- data/lib/generators/sunrise/templates/models/mongoid/structure_type.rb +6 -6
- data/lib/generators/sunrise/templates/models/sunrise/sunrise_structure.rb +2 -2
- data/lib/generators/sunrise/templates/spec/controllers/pages_controller_spec.rb +2 -2
- data/lib/generators/sunrise/templates/spec/controllers/welcome_controller_spec.rb +1 -1
- data/lib/generators/sunrise/templates/spec/factories/structure_factory.rb +2 -2
- data/lib/generators/sunrise/templates/spec/factories/user_factory.rb +6 -6
- data/lib/generators/sunrise/templates/spec/spec_helper.rb +1 -1
- data/lib/generators/sunrise/templates/spec/support/helpers/controller_macros.rb +4 -4
- data/lib/generators/sunrise/templates/uploaders/attachment_file_uploader.rb +4 -0
- data/lib/generators/sunrise/templates/uploaders/avatar_uploader.rb +4 -0
- data/lib/generators/sunrise/templates/uploaders/picture_uploader.rb +4 -0
- data/lib/sunrise/abstract_model.rb +13 -3
- data/lib/sunrise/carrierwave/glue.rb +1 -7
- data/lib/sunrise/config/model.rb +4 -0
- data/lib/sunrise/config.rb +0 -5
- data/lib/sunrise/core_ext/string.rb +0 -5
- data/lib/sunrise/engine.rb +7 -1
- data/lib/sunrise/models/ability.rb +8 -8
- data/lib/sunrise/models/position_type.rb +1 -7
- data/lib/sunrise/models/role_type.rb +4 -6
- data/lib/sunrise/models/structure.rb +3 -3
- data/lib/sunrise/models/structure_type.rb +1 -7
- data/lib/sunrise/models/user.rb +4 -4
- data/lib/sunrise/utils.rb +1 -2
- data/lib/sunrise/version.rb +1 -1
- data/lib/sunrise/views/search_wrapper.rb +1 -1
- data/sunrise-cms.gemspec +8 -13
- metadata +24 -65
- data/.rspec +0 -2
- data/lib/sunrise/carrierwave/file_size_validator.rb +0 -75
- data/lib/sunrise/utils/transliteration.rb +0 -73
@@ -13,7 +13,7 @@ uk:
|
|
13
13
|
remember_me: "Запам'ятати мене"
|
14
14
|
role_type_id: "Тип користувача"
|
15
15
|
role: "Тип користувача"
|
16
|
-
|
16
|
+
|
17
17
|
structure:
|
18
18
|
title: "Назва"
|
19
19
|
title_ru: "Назва (рос.)"
|
@@ -24,7 +24,7 @@ uk:
|
|
24
24
|
redirect_url: "Перенаправлення (URL)"
|
25
25
|
position_type_id: "Позиція"
|
26
26
|
slug: "URL"
|
27
|
-
|
27
|
+
|
28
28
|
header:
|
29
29
|
title: "Заголовок сторінки"
|
30
30
|
title_ru: "Заголовок сторінки (рос.)"
|
@@ -35,7 +35,7 @@ uk:
|
|
35
35
|
description: "Опис сторінки"
|
36
36
|
description_ru: "Опис сторінки (рос.)"
|
37
37
|
description_en: "Опис сторінки (eng.)"
|
38
|
-
|
38
|
+
|
39
39
|
post:
|
40
40
|
title: "Назва"
|
41
41
|
title_ru: "Назва (рос.)"
|
@@ -46,7 +46,7 @@ uk:
|
|
46
46
|
created_at: "Дата / Час"
|
47
47
|
picture: "Зображення"
|
48
48
|
published_at: "Дата публікації"
|
49
|
-
|
49
|
+
|
50
50
|
page:
|
51
51
|
title: "Назва"
|
52
52
|
title_ru: "Назва (рос.)"
|
@@ -54,10 +54,10 @@ uk:
|
|
54
54
|
content: "Зміст"
|
55
55
|
content_ru: "Зміст (рос.)"
|
56
56
|
content_en: "Зміст (eng.)"
|
57
|
-
|
57
|
+
|
58
58
|
tag:
|
59
59
|
name: "Назва"
|
60
|
-
|
60
|
+
|
61
61
|
feedback:
|
62
62
|
name: "Ім'я"
|
63
63
|
email: "Email"
|
@@ -66,14 +66,14 @@ uk:
|
|
66
66
|
remote_ip: "IP адреса"
|
67
67
|
user_agent: "Версія браузера"
|
68
68
|
message: "Повідомлення"
|
69
|
-
|
69
|
+
|
70
70
|
activity:
|
71
71
|
created_at: "Дата"
|
72
72
|
owner: "Пользователь"
|
73
73
|
key: "Что"
|
74
74
|
trackable: "Объект"
|
75
75
|
remote_address: "IP"
|
76
|
-
|
76
|
+
|
77
77
|
manage:
|
78
78
|
title: "Система<br />управління"
|
79
79
|
go_site: "Перегляд сайту"
|
@@ -106,7 +106,7 @@ uk:
|
|
106
106
|
close: "Закрити"
|
107
107
|
search: "Пошук"
|
108
108
|
filter: "Фільтр"
|
109
|
-
|
109
|
+
|
110
110
|
menu:
|
111
111
|
title: "Розділи та модулі"
|
112
112
|
system_messages: "Системні повідомлення"
|
@@ -134,29 +134,29 @@ uk:
|
|
134
134
|
panel:
|
135
135
|
main: "Розділи та модулі"
|
136
136
|
creates: "Створити"
|
137
|
-
|
137
|
+
|
138
138
|
settings:
|
139
139
|
title: "Налаштування"
|
140
140
|
mailer: "Пошта"
|
141
141
|
route: "Домен"
|
142
142
|
contacts: "Контакти"
|
143
|
-
|
143
|
+
|
144
144
|
locale:
|
145
145
|
ru: "русский"
|
146
146
|
en: "английский"
|
147
147
|
uk: "украинский"
|
148
|
-
|
149
|
-
model_filter:
|
148
|
+
|
149
|
+
model_filter:
|
150
150
|
title: "Фільтр даних"
|
151
151
|
filter: "Фільтр"
|
152
152
|
search: "Пошук"
|
153
153
|
clear: "Очистити"
|
154
154
|
total_count: "Всього"
|
155
|
-
|
155
|
+
|
156
156
|
position:
|
157
157
|
down: "Опустити вниз"
|
158
158
|
up: "Підняти вверх"
|
159
|
-
|
159
|
+
|
160
160
|
buttons:
|
161
161
|
create_structure: "Створити розділ"
|
162
162
|
table: "Таблиця"
|
@@ -168,7 +168,7 @@ uk:
|
|
168
168
|
sort: "Сортувати"
|
169
169
|
save: "Зберегти"
|
170
170
|
cancel: "Скасувати"
|
171
|
-
|
171
|
+
|
172
172
|
user:
|
173
173
|
actions: "дії"
|
174
174
|
events:
|
@@ -179,7 +179,7 @@ uk:
|
|
179
179
|
activate: "Активувати"
|
180
180
|
unlock: "Розблокувати"
|
181
181
|
roles: "Ролі"
|
182
|
-
|
182
|
+
|
183
183
|
users:
|
184
184
|
activated_at: "активація"
|
185
185
|
last_login_ip: "ip"
|
@@ -187,16 +187,16 @@ uk:
|
|
187
187
|
category: "категорія"
|
188
188
|
name: "Ім'я"
|
189
189
|
export: "Експортувати"
|
190
|
-
|
190
|
+
|
191
191
|
sort:
|
192
192
|
_: "-"
|
193
193
|
created_at_desc: "по дате по убыванию"
|
194
194
|
created_at_asc: "по дате по возрастанию"
|
195
195
|
name_desc: "по имени по убыванию"
|
196
196
|
name_asc: "по имени по возрастанию"
|
197
|
-
|
197
|
+
|
198
198
|
structure:
|
199
|
-
|
199
|
+
name:
|
200
200
|
page: "Текстова сторінка"
|
201
201
|
posts: "Блоги"
|
202
202
|
main: "Головна сторінка"
|
@@ -208,20 +208,20 @@ uk:
|
|
208
208
|
tracks: "Музика"
|
209
209
|
wallpapers: "Шпалери"
|
210
210
|
group: "Група сторінок"
|
211
|
-
|
211
|
+
|
212
212
|
position:
|
213
213
|
default: "За замовчуванням"
|
214
214
|
menu: "Головне меню"
|
215
215
|
bottom: "Внизу"
|
216
|
-
|
216
|
+
|
217
217
|
role:
|
218
|
-
|
218
|
+
name:
|
219
219
|
guest: "Гість"
|
220
220
|
default: "Клієнт"
|
221
221
|
moderator: "Модератор"
|
222
222
|
admin: "Aдміністратор"
|
223
223
|
redactor: "Редактор"
|
224
|
-
|
224
|
+
|
225
225
|
tags:
|
226
226
|
sort:
|
227
227
|
_: "-"
|
@@ -229,7 +229,7 @@ uk:
|
|
229
229
|
created_at_asc: "по дате по возрастанию"
|
230
230
|
name_desc: "по названию по убыванию"
|
231
231
|
name_asc: "по названию по возрастанию"
|
232
|
-
|
232
|
+
|
233
233
|
posts:
|
234
234
|
sort:
|
235
235
|
_: "-"
|
@@ -237,7 +237,7 @@ uk:
|
|
237
237
|
created_at_asc: "по дате по возрастанию"
|
238
238
|
title_desc: "по названию по убыванию"
|
239
239
|
title_asc: "по названию по возрастанию"
|
240
|
-
|
240
|
+
|
241
241
|
sort_columns:
|
242
242
|
_: "-"
|
243
243
|
created_at_desc: "по дате по убыванию"
|
@@ -252,11 +252,11 @@ uk:
|
|
252
252
|
position_asc: "за позицией по возрастанию"
|
253
253
|
sort_order_desc: "по сортировке по убыванию"
|
254
254
|
sort_order_asc: "по сортировке по возрастанию"
|
255
|
-
|
255
|
+
|
256
256
|
fileupload:
|
257
257
|
button: "Виберіть файл"
|
258
258
|
max_size: "Макс. р."
|
259
|
-
|
259
|
+
|
260
260
|
icons:
|
261
261
|
down: "Опустити вниз"
|
262
262
|
up: "Підняти вгору"
|
@@ -266,7 +266,7 @@ uk:
|
|
266
266
|
|
267
267
|
groups:
|
268
268
|
meta_tags: "Мета теги"
|
269
|
-
|
269
|
+
|
270
270
|
views:
|
271
271
|
pagination:
|
272
272
|
previous: "Попередня"
|
@@ -274,9 +274,9 @@ uk:
|
|
274
274
|
truncate: "..."
|
275
275
|
last: "Остання"
|
276
276
|
first: "Перша"
|
277
|
-
|
277
|
+
|
278
278
|
flash:
|
279
|
-
manage:
|
279
|
+
manage:
|
280
280
|
actions:
|
281
281
|
create:
|
282
282
|
success: "Запис успішно створено"
|
@@ -287,19 +287,19 @@ uk:
|
|
287
287
|
destroy:
|
288
288
|
success: "Запис успішно видалено"
|
289
289
|
failure: "Виникли помилки при видаленні даних"
|
290
|
-
|
290
|
+
|
291
291
|
users:
|
292
292
|
create:
|
293
293
|
success: "Користувач успішно створений"
|
294
294
|
failure: "Виникли помилки при створенні користувача"
|
295
295
|
update:
|
296
296
|
success: "Дані користувача успішно оновлено"
|
297
|
-
|
297
|
+
|
298
298
|
settings:
|
299
299
|
create:
|
300
300
|
success: "Параметри успішно оновлені"
|
301
301
|
failure: "Виникли помилки при збереженні даних"
|
302
|
-
|
302
|
+
|
303
303
|
pages:
|
304
304
|
create:
|
305
305
|
success: "Сторінка успішно збережено"
|
@@ -307,7 +307,7 @@ uk:
|
|
307
307
|
update:
|
308
308
|
success: "Сторінка успішно збережено"
|
309
309
|
failure: "Виникли помилки при збереженні даних"
|
310
|
-
|
310
|
+
|
311
311
|
errors:
|
312
312
|
messages:
|
313
313
|
wrong_size: "неправильний розмір (повинно бути %{file_size})"
|
data/config/routes.rb
CHANGED
@@ -13,6 +13,7 @@ Sunrise::Engine.routes.draw do
|
|
13
13
|
scope ':model_name' do
|
14
14
|
get '/', action: :index, as: :index
|
15
15
|
get '/export.:format', action: :export, as: :export
|
16
|
+
post '/import', action: :import, as: :import
|
16
17
|
post '/sort', action: :sort, as: :sort
|
17
18
|
get '/new', action: :new, as: :new
|
18
19
|
post '/new', action: :create, as: :create
|
@@ -32,10 +32,6 @@ Sunrise.setup do |config|
|
|
32
32
|
# Set available locales in app (default: [])
|
33
33
|
# config.available_locales = []
|
34
34
|
|
35
|
-
# Set transliteration for babosa gem
|
36
|
-
# more info here: https://github.com/norman/babosa (default: :russian)
|
37
|
-
# config.transliteration = :russian
|
38
|
-
|
39
35
|
# Set list toolbar buttons (default: [:delete, :edit, :new, :sort, :export])
|
40
36
|
# config.default_toolbar_buttons = [:delete, :edit, :new, :sort, :export]
|
41
37
|
|
@@ -32,10 +32,6 @@ Sunrise.setup do |config|
|
|
32
32
|
# Set available locales in app (default: [])
|
33
33
|
# config.available_locales = []
|
34
34
|
|
35
|
-
# Set transliteration for babosa gem
|
36
|
-
# more info here: https://github.com/norman/babosa (default: :russian)
|
37
|
-
# config.transliteration = :russian
|
38
|
-
|
39
35
|
# Set list toolbar buttons (default: [:delete, :edit, :new, :sort, :export])
|
40
36
|
# config.default_toolbar_buttons = [:delete, :edit, :new, :sort, :export]
|
41
37
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class PositionType < Sunrise::Models::PositionType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
define_enum do
|
5
|
+
member :default
|
6
|
+
member :menu
|
7
|
+
member :bottom
|
8
8
|
end
|
9
9
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class RoleType < Sunrise::Models::RoleType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
define_enum do
|
5
|
+
member :default
|
6
|
+
member :redactor
|
7
|
+
member :moderator
|
8
|
+
member :admin
|
9
9
|
end
|
10
10
|
end
|
@@ -2,14 +2,26 @@
|
|
2
2
|
|
3
3
|
require 'rails-settings-cached'
|
4
4
|
|
5
|
-
class Settings < RailsSettings::
|
5
|
+
class Settings < RailsSettings::Base
|
6
6
|
include PublicActivity::Model
|
7
7
|
|
8
8
|
tracked owner: ->(controller, _model) { controller.try(:current_user) }
|
9
9
|
|
10
|
-
|
10
|
+
scope :application do
|
11
|
+
field :app_name, type: :string, default: 'Rails application'
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.update(attributes)
|
11
15
|
attributes.each do |key, value|
|
12
16
|
self[key] = value
|
13
17
|
end
|
14
18
|
end
|
19
|
+
|
20
|
+
def self.[](key)
|
21
|
+
public_send(key)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.[]=(key, value)
|
25
|
+
public_send("#{key}=", value)
|
26
|
+
end
|
15
27
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class StructureType < Sunrise::Models::StructureType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
define_enum do
|
5
|
+
member :page
|
6
|
+
member :posts
|
7
|
+
member :main
|
8
|
+
member :redirect
|
9
|
+
member :group
|
10
10
|
end
|
11
11
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class PositionType < Sunrise::Models::PositionType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
define_enum do
|
5
|
+
member :default
|
6
|
+
member :menu
|
7
|
+
member :bottom
|
8
8
|
end
|
9
9
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class RoleType < Sunrise::Models::RoleType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
define_enum do
|
5
|
+
member :default
|
6
|
+
member :redactor
|
7
|
+
member :moderator
|
8
|
+
member :admin
|
9
9
|
end
|
10
10
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class StructureType < Sunrise::Models::StructureType
|
4
|
-
define_enum do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
define_enum do
|
5
|
+
member :page
|
6
|
+
member :posts
|
7
|
+
member :main
|
8
|
+
member :redirect
|
9
|
+
member :group
|
10
10
|
end
|
11
11
|
end
|
@@ -23,8 +23,8 @@ class SunriseStructure < Sunrise::AbstractModel
|
|
23
23
|
field :redirect_url
|
24
24
|
field :slug
|
25
25
|
field :parent_id, collection: -> { Structure.nested_set_options { |i| "#{'–' * i.depth} #{i.title}" } }, if: ->(s) { s.moveable? }
|
26
|
-
field :structure_type_id, collection: -> { StructureType.all }, include_blank: false
|
27
|
-
field :position_type_id, collection: -> { PositionType.all }, include_blank: false
|
26
|
+
field :structure_type_id, collection: -> { StructureType.all }, include_blank: false, label_method: :title
|
27
|
+
field :position_type_id, collection: -> { PositionType.all }, include_blank: false, label_method: :title
|
28
28
|
field :is_visible
|
29
29
|
|
30
30
|
group :meta_tags, holder: :sidebar do
|
@@ -6,11 +6,11 @@ describe PagesController, type: :controller do
|
|
6
6
|
render_views
|
7
7
|
|
8
8
|
before(:all) do
|
9
|
-
@root =
|
9
|
+
@root = FactoryBot.create(:structure_main)
|
10
10
|
end
|
11
11
|
|
12
12
|
context 'page' do
|
13
|
-
before(:each) { @page =
|
13
|
+
before(:each) { @page = FactoryBot.create(:structure_page, parent: @root) }
|
14
14
|
|
15
15
|
it 'should render show action' do
|
16
16
|
get :show, id: @page.slug
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
FactoryBot.define do
|
4
4
|
factory :structure_page, class: Structure do
|
5
5
|
title 'Structure'
|
6
|
-
slug {
|
6
|
+
slug { FactoryBot.generate(:slug) }
|
7
7
|
structure_type StructureType.page
|
8
8
|
position_type PositionType.menu
|
9
9
|
is_visible true
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
FactoryBot.define do
|
4
4
|
factory :admin_user, class: User do |user|
|
5
5
|
user.name 'Admin'
|
6
|
-
user.email {
|
6
|
+
user.email { FactoryBot.generate(:email) }
|
7
7
|
user.password 'password'
|
8
8
|
user.password_confirmation 'password'
|
9
9
|
|
@@ -15,7 +15,7 @@ FactoryGirl.define do
|
|
15
15
|
|
16
16
|
factory :redactor_user, class: User do |user|
|
17
17
|
user.name 'Redactor'
|
18
|
-
user.email {
|
18
|
+
user.email { FactoryBot.generate(:email) }
|
19
19
|
user.password 'password'
|
20
20
|
user.password_confirmation 'password'
|
21
21
|
|
@@ -27,7 +27,7 @@ FactoryGirl.define do
|
|
27
27
|
|
28
28
|
factory :moderator_user, class: User do |user|
|
29
29
|
user.name 'Redactor'
|
30
|
-
user.email {
|
30
|
+
user.email { FactoryBot.generate(:email) }
|
31
31
|
user.password 'password'
|
32
32
|
user.password_confirmation 'password'
|
33
33
|
|
@@ -39,7 +39,7 @@ FactoryGirl.define do
|
|
39
39
|
|
40
40
|
factory :default_user, class: User do |user|
|
41
41
|
user.name 'Test'
|
42
|
-
user.email {
|
42
|
+
user.email { FactoryBot.generate(:email) }
|
43
43
|
user.password 'password'
|
44
44
|
user.password_confirmation 'password'
|
45
45
|
|
@@ -51,7 +51,7 @@ FactoryGirl.define do
|
|
51
51
|
|
52
52
|
factory :user, class: User do |user|
|
53
53
|
user.name 'Test'
|
54
|
-
user.email {
|
54
|
+
user.email { FactoryBot.generate(:email) }
|
55
55
|
user.password 'password'
|
56
56
|
user.password_confirmation 'password'
|
57
57
|
end
|
@@ -19,7 +19,7 @@ RSpec.configure do |config|
|
|
19
19
|
# config.mock_with :rr
|
20
20
|
config.mock_with :rspec
|
21
21
|
|
22
|
-
config.include Devise::
|
22
|
+
config.include Devise::Test::ControllerHelpers, type: :controller
|
23
23
|
config.extend ControllerMacros, type: :controller
|
24
24
|
|
25
25
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module ControllerMacros
|
4
4
|
def login_admin
|
5
5
|
before(:all) do
|
6
|
-
@admin =
|
6
|
+
@admin = FactoryBot.create(:admin_user)
|
7
7
|
end
|
8
8
|
|
9
9
|
before(:each) do
|
@@ -14,7 +14,7 @@ module ControllerMacros
|
|
14
14
|
|
15
15
|
def login_default
|
16
16
|
before(:all) do
|
17
|
-
@user =
|
17
|
+
@user = FactoryBot.create(:default_user)
|
18
18
|
end
|
19
19
|
|
20
20
|
before(:each) do
|
@@ -25,7 +25,7 @@ module ControllerMacros
|
|
25
25
|
|
26
26
|
def login_redactor
|
27
27
|
before(:all) do
|
28
|
-
@user =
|
28
|
+
@user = FactoryBot.create(:redactor_user)
|
29
29
|
end
|
30
30
|
|
31
31
|
before(:each) do
|
@@ -36,7 +36,7 @@ module ControllerMacros
|
|
36
36
|
|
37
37
|
def login_moderator
|
38
38
|
before(:all) do
|
39
|
-
@user =
|
39
|
+
@user = FactoryBot.create(:moderator_user)
|
40
40
|
end
|
41
41
|
|
42
42
|
before(:each) do
|