enju_search_log 0.2.0.beta.1 → 0.2.0.beta.3

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/search_history.rb +9 -10
  3. data/lib/enju_search_log/version.rb +1 -1
  4. data/spec/controllers/search_histories_controller_spec.rb +1 -1
  5. data/spec/dummy/app/controllers/application_controller.rb +2 -2
  6. data/spec/dummy/app/models/user.rb +1 -1
  7. data/spec/dummy/config/application.rb +2 -0
  8. data/spec/dummy/db/migrate/149_create_message_templates.rb +18 -0
  9. data/spec/dummy/db/migrate/154_create_messages.rb +23 -0
  10. data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +18 -0
  11. data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  12. data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
  13. data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +1 -1
  14. data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +18 -0
  15. data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +18 -0
  16. data/spec/dummy/db/migrate/20150506105356_add_error_message_to_user_import_result.rb +5 -0
  17. data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +13 -0
  18. data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +13 -0
  19. data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +9 -0
  20. data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +5 -0
  21. data/spec/dummy/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +9 -0
  22. data/spec/dummy/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +9 -0
  23. data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +9 -0
  24. data/spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb +5 -0
  25. data/spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb +5 -0
  26. data/spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb +5 -0
  27. data/spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb +5 -0
  28. data/spec/dummy/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb +9 -0
  29. data/spec/dummy/db/schema.rb +106 -5
  30. data/spec/factories/profile.rb +17 -0
  31. data/spec/factories/user.rb +43 -0
  32. data/spec/fixtures/libraries.yml +103 -0
  33. data/spec/fixtures/library_groups.yml +21 -18
  34. data/spec/fixtures/search_histories.yml +9 -10
  35. data/spec/fixtures/user_groups.yml +44 -0
  36. data/spec/models/search_history_spec.rb +10 -12
  37. data/spec/models/user_spec.rb +74 -0
  38. data/spec/rails_helper.rb +80 -0
  39. data/spec/spec_helper.rb +88 -36
  40. data/spec/support/devise.rb +2 -2
  41. metadata +178 -86
  42. data/spec/dummy/app/models/ability.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1183581c4daeef762ecb81966d886fc952f36861
4
- data.tar.gz: c9de2625233b2d9ecfef6c9fdf0c21becf06e38e
3
+ metadata.gz: bbd92d1277968c7a17bf4ca1c65d5d5656464b14
4
+ data.tar.gz: 6f1a6e8b50a69647fb481cfbc398fe801de10bd6
5
5
  SHA512:
6
- metadata.gz: 5a748e7617bcc8d471b6696c41de6f1a32a26d9c732b12efef16b57df6e339dd6cc707db1d081a53d4111f9dfa913a2f9c170d8d01c2ed4f7e4b5da10cf5427d
7
- data.tar.gz: 8b9be9fd97085adb7735fd9b36bd23897ab18a99d01d2a9cf3acd52496ec3707992a9d57e481519742bd6c50b63c651d63b00a74ad0dd95df56f20608992874a
6
+ metadata.gz: ce5c2ed6202d682af28f049d8fa48419f7c6e38854d4fadb0d44f0c3d5d61d45564bf3ef1e4aa7a8eb7084899f3ea8f629db8b37d0de83430c82770f7fb93cc0
7
+ data.tar.gz: 82efc68998d4497b66eb457f159f3a9759d0e192db227702e2001e6e4668ca063e51866f822c9d77d66d0fc98100cc9a1140a568f1dfcc9f5560ae027e50148f
@@ -20,25 +20,24 @@ end
20
20
  #
21
21
  # id :integer not null, primary key
22
22
  # user_id :integer
23
- # operation :string(255) default("searchRetrieve")
23
+ # operation :string default("searchRetrieve")
24
24
  # sru_version :float default(1.2)
25
- # query :string(255)
25
+ # query :string
26
26
  # start_record :integer
27
27
  # maximum_records :integer
28
- # record_packing :string(255)
29
- # record_schema :string(255)
28
+ # record_packing :string
29
+ # record_schema :string
30
30
  # result_set_ttl :integer
31
- # stylesheet :string(255)
32
- # extra_request_data :string(255)
31
+ # stylesheet :string
32
+ # extra_request_data :string
33
33
  # number_of_records :integer default(0)
34
- # result_set_id :string(255)
34
+ # result_set_id :string
35
35
  # result_set_idle_time :integer
36
36
  # records :text
37
37
  # next_record_position :integer
38
38
  # diagnostics :text
39
39
  # extra_response_data :text
40
40
  # echoed_search_retrieve_request :text
41
- # created_at :datetime not null
42
- # updated_at :datetime not null
41
+ # created_at :datetime
42
+ # updated_at :datetime
43
43
  #
44
-
@@ -1,3 +1,3 @@
1
1
  module EnjuSearchLog
2
- VERSION = "0.2.0.beta.1"
2
+ VERSION = "0.2.0.beta.3"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe SearchHistoriesController do
4
4
  fixtures :all
@@ -1,8 +1,8 @@
1
1
  class ApplicationController < ActionController::Base
2
2
  protect_from_forgery
3
- include EnjuLeaf::Controller
4
- include EnjuBiblio::Controller
5
3
  include EnjuLibrary::Controller
4
+ include EnjuBiblio::Controller
5
+ before_action :set_paper_trail_whodunnit
6
6
  after_action :verify_authorized
7
7
 
8
8
  include Pundit
@@ -4,6 +4,6 @@ class User < ActiveRecord::Base
4
4
  :recoverable, :rememberable, :trackable, #, :validatable
5
5
  :lockable, :lock_strategy => :none, :unlock_strategy => :none
6
6
 
7
- include EnjuLeaf::EnjuUser
7
+ include EnjuSeed::EnjuUser
8
8
  enju_search_log_user_model
9
9
  end
@@ -5,6 +5,8 @@ require 'rails/all'
5
5
  Bundler.require(*Rails.groups)
6
6
  require 'enju_search_log'
7
7
  require 'enju_leaf'
8
+ require 'globalize'
9
+ require 'globalize-accessors'
8
10
 
9
11
  module Dummy
10
12
  class Application < Rails::Application
@@ -0,0 +1,18 @@
1
+ class CreateMessageTemplates < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_templates do |t|
4
+ t.string :status, :null => false
5
+ t.text :title, :null => false
6
+ t.text :body, :null => false
7
+ t.integer :position
8
+ t.string :locale, :default => I18n.default_locale.to_s
9
+
10
+ t.timestamps
11
+ end
12
+ add_index :message_templates, :status, :unique => true
13
+ end
14
+
15
+ def self.down
16
+ drop_table :message_templates
17
+ end
18
+ end
@@ -0,0 +1,23 @@
1
+ class CreateMessages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :messages, :force => true do |t|
4
+ t.datetime :read_at
5
+ t.integer :receiver_id, :sender_id
6
+ t.string :subject, :null => false
7
+ t.text :body
8
+ t.integer :message_request_id
9
+ t.integer :parent_id
10
+
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :messages, :sender_id
15
+ add_index :messages, :receiver_id
16
+ add_index :messages, :message_request_id
17
+ add_index :messages, :parent_id
18
+ end
19
+
20
+ def self.down
21
+ drop_table :messages
22
+ end
23
+ end
@@ -0,0 +1,18 @@
1
+ class CreateMessageRequests < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_requests do |t|
4
+ t.integer :sender_id
5
+ t.integer :receiver_id
6
+ t.integer :message_template_id
7
+ t.datetime :sent_at
8
+ t.datetime :deleted_at
9
+ t.text :body
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+
15
+ def self.down
16
+ drop_table :message_requests
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ class AddLftAndRgtToMessage < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :messages, :lft, :integer
4
+ add_column :messages, :rgt, :integer
5
+ end
6
+
7
+ def self.down
8
+ remove_column :messages, :rgt
9
+ remove_column :messages, :lft
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ class AddDepthToMessage < ActiveRecord::Migration
2
+ def change
3
+ add_column :messages, :depth, :integer
4
+
5
+ end
6
+ end
@@ -6,7 +6,7 @@ class CreateUserImportFiles < ActiveRecord::Migration
6
6
  t.datetime :executed_at
7
7
  t.string :user_import_file_name
8
8
  t.string :user_import_content_type
9
- t.string :user_import_file_size
9
+ t.integer :user_import_file_size
10
10
  t.datetime :user_import_updated_at
11
11
  t.string :user_import_fingerprint
12
12
  t.string :edit_mode
@@ -0,0 +1,18 @@
1
+ class CreateMessageTransitions < ActiveRecord::Migration
2
+ def change
3
+ create_table :message_transitions do |t|
4
+ t.string :to_state
5
+ if ActiveRecord::Base.configurations[Rails.env]["adapter"].try(:match, /mysql/)
6
+ t.text :metadata
7
+ else
8
+ t.text :metadata, default: "{}"
9
+ end
10
+ t.integer :sort_key
11
+ t.integer :message_id
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :message_transitions, :message_id
16
+ add_index :message_transitions, [:sort_key, :message_id], unique: true
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ class CreateMessageRequestTransitions < ActiveRecord::Migration
2
+ def change
3
+ create_table :message_request_transitions do |t|
4
+ t.string :to_state
5
+ if ActiveRecord::Base.configurations[Rails.env]["adapter"].try(:match, /mysql/)
6
+ t.text :metadata
7
+ else
8
+ t.text :metadata, default: "{}"
9
+ end
10
+ t.integer :sort_key
11
+ t.integer :message_request_id
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :message_request_transitions, :message_request_id
16
+ add_index :message_request_transitions, [:sort_key, :message_request_id], unique: true, name: "index_message_request_transitions_on_sort_key_and_request_id"
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ class AddErrorMessageToUserImportResult < ActiveRecord::Migration
2
+ def change
3
+ add_column :user_import_results, :error_message, :text
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateWithdraws < ActiveRecord::Migration
2
+ def change
3
+ create_table :withdraws do |t|
4
+ t.integer :basket_id
5
+ t.integer :item_id
6
+ t.integer :librarian_id
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :withdraws, :basket_id
11
+ add_index :withdraws, :item_id
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class AddTranslationTableToLibraryGroup < ActiveRecord::Migration
2
+ def up
3
+ LibraryGroup.create_translation_table!({
4
+ login_banner: :text
5
+ }, {
6
+ migrate_data: true
7
+ })
8
+ end
9
+
10
+ def down
11
+ LibraryGroup.drop_translation_table! migrate_data: true
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ class AddFooterBannerToLibraryGroup < ActiveRecord::Migration
2
+ def up
3
+ LibraryGroup.add_translation_fields! footer_banner: :text
4
+ end
5
+
6
+ def down
7
+ remove_column :library_group_translations, :footer_banner
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddHtmlSnippetToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :html_snippet, :text
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToUserImportFileTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :user_import_file_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :user_import_file_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToUserExportFileTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :user_export_file_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :user_export_file_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToMessageTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :message_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :message_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddMaxNumberOfResultsToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :max_number_of_results, :integer, default: 500
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddFamilyNameFirstToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :family_name_first, :boolean, default: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPubYearFacetRangeIntervalToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :pub_year_facet_range_interval, :integer, default: 10
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddUserIdToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_reference :library_groups, :user, index: true, foreign_key: true
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToMessageRequestTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :message_request_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :message_request_transitions, :most_recent
8
+ end
9
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150221063719) do
14
+ ActiveRecord::Schema.define(version: 20160814165332) do
15
15
 
16
16
  create_table "accepts", force: :cascade do |t|
17
17
  t.integer "basket_id"
@@ -98,10 +98,22 @@ ActiveRecord::Schema.define(version: 20150221063719) do
98
98
  add_index "libraries", ["library_group_id"], name: "index_libraries_on_library_group_id"
99
99
  add_index "libraries", ["name"], name: "index_libraries_on_name", unique: true
100
100
 
101
+ create_table "library_group_translations", force: :cascade do |t|
102
+ t.integer "library_group_id", null: false
103
+ t.string "locale", null: false
104
+ t.datetime "created_at", null: false
105
+ t.datetime "updated_at", null: false
106
+ t.text "login_banner"
107
+ t.text "footer_banner"
108
+ end
109
+
110
+ add_index "library_group_translations", ["library_group_id"], name: "index_library_group_translations_on_library_group_id"
111
+ add_index "library_group_translations", ["locale"], name: "index_library_group_translations_on_locale"
112
+
101
113
  create_table "library_groups", force: :cascade do |t|
102
- t.string "name", null: false
114
+ t.string "name", null: false
103
115
  t.text "display_name"
104
- t.string "short_name", null: false
116
+ t.string "short_name", null: false
105
117
  t.text "my_networks"
106
118
  t.text "login_banner"
107
119
  t.text "note"
@@ -110,11 +122,86 @@ ActiveRecord::Schema.define(version: 20150221063719) do
110
122
  t.datetime "created_at"
111
123
  t.datetime "updated_at"
112
124
  t.text "admin_networks"
113
- t.string "url", default: "http://localhost:3000/"
125
+ t.string "url", default: "http://localhost:3000/"
114
126
  t.text "settings"
127
+ t.text "html_snippet"
128
+ t.integer "max_number_of_results", default: 500
129
+ t.boolean "family_name_first", default: true
130
+ t.integer "pub_year_facet_range_interval", default: 10
131
+ t.integer "user_id"
115
132
  end
116
133
 
117
134
  add_index "library_groups", ["short_name"], name: "index_library_groups_on_short_name"
135
+ add_index "library_groups", ["user_id"], name: "index_library_groups_on_user_id"
136
+
137
+ create_table "message_request_transitions", force: :cascade do |t|
138
+ t.string "to_state"
139
+ t.text "metadata", default: "{}"
140
+ t.integer "sort_key"
141
+ t.integer "message_request_id"
142
+ t.datetime "created_at"
143
+ t.datetime "updated_at"
144
+ t.boolean "most_recent"
145
+ end
146
+
147
+ add_index "message_request_transitions", ["message_request_id"], name: "index_message_request_transitions_on_message_request_id"
148
+ add_index "message_request_transitions", ["sort_key", "message_request_id"], name: "index_message_request_transitions_on_sort_key_and_request_id", unique: true
149
+
150
+ create_table "message_requests", force: :cascade do |t|
151
+ t.integer "sender_id"
152
+ t.integer "receiver_id"
153
+ t.integer "message_template_id"
154
+ t.datetime "sent_at"
155
+ t.datetime "deleted_at"
156
+ t.text "body"
157
+ t.datetime "created_at"
158
+ t.datetime "updated_at"
159
+ end
160
+
161
+ create_table "message_templates", force: :cascade do |t|
162
+ t.string "status", null: false
163
+ t.text "title", null: false
164
+ t.text "body", null: false
165
+ t.integer "position"
166
+ t.string "locale", default: "en"
167
+ t.datetime "created_at"
168
+ t.datetime "updated_at"
169
+ end
170
+
171
+ add_index "message_templates", ["status"], name: "index_message_templates_on_status", unique: true
172
+
173
+ create_table "message_transitions", force: :cascade do |t|
174
+ t.string "to_state"
175
+ t.text "metadata", default: "{}"
176
+ t.integer "sort_key"
177
+ t.integer "message_id"
178
+ t.datetime "created_at"
179
+ t.datetime "updated_at"
180
+ t.boolean "most_recent"
181
+ end
182
+
183
+ add_index "message_transitions", ["message_id"], name: "index_message_transitions_on_message_id"
184
+ add_index "message_transitions", ["sort_key", "message_id"], name: "index_message_transitions_on_sort_key_and_message_id", unique: true
185
+
186
+ create_table "messages", force: :cascade do |t|
187
+ t.datetime "read_at"
188
+ t.integer "receiver_id"
189
+ t.integer "sender_id"
190
+ t.string "subject", null: false
191
+ t.text "body"
192
+ t.integer "message_request_id"
193
+ t.integer "parent_id"
194
+ t.datetime "created_at"
195
+ t.datetime "updated_at"
196
+ t.integer "lft"
197
+ t.integer "rgt"
198
+ t.integer "depth"
199
+ end
200
+
201
+ add_index "messages", ["message_request_id"], name: "index_messages_on_message_request_id"
202
+ add_index "messages", ["parent_id"], name: "index_messages_on_parent_id"
203
+ add_index "messages", ["receiver_id"], name: "index_messages_on_receiver_id"
204
+ add_index "messages", ["sender_id"], name: "index_messages_on_sender_id"
118
205
 
119
206
  create_table "profiles", force: :cascade do |t|
120
207
  t.integer "user_id"
@@ -253,6 +340,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
253
340
  t.integer "user_export_file_id"
254
341
  t.datetime "created_at"
255
342
  t.datetime "updated_at"
343
+ t.boolean "most_recent"
256
344
  end
257
345
 
258
346
  add_index "user_export_file_transitions", ["sort_key", "user_export_file_id"], name: "index_user_export_file_transitions_on_sort_key_and_file_id", unique: true
@@ -298,6 +386,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
298
386
  t.integer "user_import_file_id"
299
387
  t.datetime "created_at"
300
388
  t.datetime "updated_at"
389
+ t.boolean "most_recent"
301
390
  end
302
391
 
303
392
  add_index "user_import_file_transitions", ["sort_key", "user_import_file_id"], name: "index_user_import_file_transitions_on_sort_key_and_file_id", unique: true
@@ -309,7 +398,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
309
398
  t.datetime "executed_at"
310
399
  t.string "user_import_file_name"
311
400
  t.string "user_import_content_type"
312
- t.string "user_import_file_size"
401
+ t.integer "user_import_file_size"
313
402
  t.datetime "user_import_updated_at"
314
403
  t.string "user_import_fingerprint"
315
404
  t.string "edit_mode"
@@ -327,6 +416,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
327
416
  t.text "body"
328
417
  t.datetime "created_at"
329
418
  t.datetime "updated_at"
419
+ t.text "error_message"
330
420
  end
331
421
 
332
422
  create_table "users", force: :cascade do |t|
@@ -368,4 +458,15 @@ ActiveRecord::Schema.define(version: 20150221063719) do
368
458
 
369
459
  add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id"
370
460
 
461
+ create_table "withdraws", force: :cascade do |t|
462
+ t.integer "basket_id"
463
+ t.integer "item_id"
464
+ t.integer "librarian_id"
465
+ t.datetime "created_at", null: false
466
+ t.datetime "updated_at", null: false
467
+ end
468
+
469
+ add_index "withdraws", ["basket_id"], name: "index_withdraws_on_basket_id"
470
+ add_index "withdraws", ["item_id"], name: "index_withdraws_on_item_id"
471
+
371
472
  end
@@ -0,0 +1,17 @@
1
+ FactoryGirl.define do
2
+ factory :profile, :class => Profile do |f|
3
+ f.user_group_id {UserGroup.first.id}
4
+ f.required_role_id {Role.where(name: 'User').first.id}
5
+ f.sequence(:user_number){|n| "user_number_#{n}"}
6
+ f.library_id 2
7
+ f.locale "ja"
8
+ factory :librarian_profile, :class => Profile do |profile|
9
+ profile.required_role_id {Role.where(name: 'Librarian').first.id}
10
+ profile.association :user, factory: :librarian
11
+ end
12
+ factory :admin_profile, :class => Profile do |profile|
13
+ profile.required_role_id {Role.where(name: 'Administrator').first.id}
14
+ profile.association :user, factory: :admin
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,43 @@
1
+ FactoryGirl.define do
2
+ factory :admin, class: User do |f|
3
+ f.sequence(:username){|n| "admin_#{n}"}
4
+ f.sequence(:email){|n| "admin_#{n}@example.jp"}
5
+ f.password 'adminpassword'
6
+ f.password_confirmation 'adminpassword'
7
+ f.after(:create) do |user|
8
+ user_has_role = UserHasRole.new
9
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('Administrator').id})
10
+ user_has_role.save
11
+ user.reload
12
+ end
13
+ end
14
+
15
+ factory :librarian, class: User do |f|
16
+ f.sequence(:username){|n| "librarian_#{n}"}
17
+ f.sequence(:email){|n| "librarian_#{n}@example.jp"}
18
+ f.password 'librarianpassword'
19
+ f.password_confirmation 'librarianpassword'
20
+ f.after(:create) do |user|
21
+ user_has_role = UserHasRole.new
22
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('Librarian').id})
23
+ user_has_role.save
24
+ user.reload
25
+ end
26
+ end
27
+
28
+ factory :user, class: User do |f|
29
+ f.sequence(:username){|n| "user_#{n}"}
30
+ f.sequence(:email){|n| "user_#{n}@example.jp"}
31
+ f.password 'userpassword'
32
+ f.password_confirmation 'userpassword'
33
+ f.after(:create) do |user|
34
+ user_has_role = UserHasRole.new
35
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('User').id})
36
+ user_has_role.save
37
+ user.reload
38
+ end
39
+ end
40
+
41
+ factory :invalid_user, class: User do |f|
42
+ end
43
+ end