anoubis 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +38 -0
- data/app/controllers/anoubis/application_controller.rb +78 -0
- data/app/controllers/anoubis/core/application_controller.rb +343 -0
- data/app/controllers/anoubis/core/data/actions.rb +962 -0
- data/app/controllers/anoubis/core/data/callbacks.rb +68 -0
- data/app/controllers/anoubis/core/data/convert.rb +407 -0
- data/app/controllers/anoubis/core/data/defaults.rb +217 -0
- data/app/controllers/anoubis/core/data/get.rb +531 -0
- data/app/controllers/anoubis/core/data/load.rb +89 -0
- data/app/controllers/anoubis/core/data/set.rb +49 -0
- data/app/controllers/anoubis/core/data/setup.rb +104 -0
- data/app/controllers/anoubis/core/data_controller.rb +28 -0
- data/app/controllers/anoubis/core/index/actions.rb +53 -0
- data/app/controllers/anoubis/core/index/callbacks.rb +23 -0
- data/app/controllers/anoubis/core/index_controller.rb +36 -0
- data/app/controllers/anoubis/etc/base.rb +52 -0
- data/app/controllers/anoubis/etc/data.rb +89 -0
- data/app/controllers/anoubis/etc/field.rb +468 -0
- data/app/controllers/anoubis/etc/field_options.rb +83 -0
- data/app/controllers/anoubis/etc/field_order.rb +51 -0
- data/app/controllers/anoubis/etc/filter.rb +251 -0
- data/app/controllers/anoubis/etc/menu.rb +101 -0
- data/app/controllers/anoubis/etc/model.rb +67 -0
- data/app/controllers/anoubis/etc/tab_item.rb +91 -0
- data/app/controllers/anoubis/etc.rb +8 -0
- data/app/controllers/anoubis/export.rb +47 -0
- data/app/controllers/anoubis/output/autocomplete.rb +30 -0
- data/app/controllers/anoubis/output/basic.rb +86 -0
- data/app/controllers/anoubis/output/data.rb +101 -0
- data/app/controllers/anoubis/output/delete.rb +41 -0
- data/app/controllers/anoubis/output/edit.rb +55 -0
- data/app/controllers/anoubis/output/frame.rb +227 -0
- data/app/controllers/anoubis/output/login.rb +71 -0
- data/app/controllers/anoubis/output/menu.rb +220 -0
- data/app/controllers/anoubis/output/update.rb +43 -0
- data/app/controllers/anoubis/sso/client/application_controller.rb +139 -0
- data/app/controllers/anoubis/sso/client/data/actions.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/callbacks.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/convert.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/defaults.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/get.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/load.rb +26 -0
- data/app/controllers/anoubis/sso/client/data/set.rb +5 -0
- data/app/controllers/anoubis/sso/client/data/setup.rb +5 -0
- data/app/controllers/anoubis/sso/client/data_controller.rb +21 -0
- data/app/controllers/anoubis/sso/client/index/actions.rb +79 -0
- data/app/controllers/anoubis/sso/client/index/callbacks.rb +13 -0
- data/app/controllers/anoubis/sso/client/index_controller.rb +18 -0
- data/app/controllers/anoubis/sso/server/application_controller.rb +49 -0
- data/app/controllers/anoubis/sso/server/login_controller.rb +342 -0
- data/app/controllers/anoubis/sso/server/user_controller.rb +142 -0
- data/app/controllers/anoubis/tenant/application_controller.rb +54 -0
- data/app/controllers/anoubis/tenant/data/actions.rb +11 -0
- data/app/controllers/anoubis/tenant/data/callbacks.rb +11 -0
- data/app/controllers/anoubis/tenant/data/convert.rb +11 -0
- data/app/controllers/anoubis/tenant/data/defaults.rb +11 -0
- data/app/controllers/anoubis/tenant/data/get.rb +11 -0
- data/app/controllers/anoubis/tenant/data/load.rb +52 -0
- data/app/controllers/anoubis/tenant/data/set.rb +11 -0
- data/app/controllers/anoubis/tenant/data/setup.rb +11 -0
- data/app/controllers/anoubis/tenant/data_controller.rb +28 -0
- data/app/controllers/anoubis/tenant/index/actions.rb +191 -0
- data/app/controllers/anoubis/tenant/index/callbacks.rb +11 -0
- data/app/controllers/anoubis/tenant/index_controller.rb +38 -0
- data/app/controllers/anoubis/tenants_controller.rb +7 -0
- data/app/controllers/anoubis/users_controller.rb +7 -0
- data/app/jobs/anoubis/application_job.rb +6 -0
- data/app/mailers/anoubis/application_mailer.rb +8 -0
- data/app/models/anoubis/application_record.rb +45 -0
- data/app/models/anoubis/core/application_record.rb +250 -0
- data/app/models/anoubis/core/locales.rb +27 -0
- data/app/models/anoubis/sso/client/application_record.rb +3 -0
- data/app/models/anoubis/sso/client/group.rb +19 -0
- data/app/models/anoubis/sso/client/group_menu.rb +109 -0
- data/app/models/anoubis/sso/client/menu.rb +145 -0
- data/app/models/anoubis/sso/client/user.rb +81 -0
- data/app/models/anoubis/sso/client/user_group.rb +32 -0
- data/app/models/anoubis/sso/server/system.rb +36 -0
- data/app/models/anoubis/sso/server/user.rb +79 -0
- data/app/models/anoubis/tenant/application_record.rb +41 -0
- data/app/models/anoubis/tenant/group.rb +95 -0
- data/app/models/anoubis/tenant/group_locale.rb +19 -0
- data/app/models/anoubis/tenant/group_menu.rb +84 -0
- data/app/models/anoubis/tenant/menu.rb +156 -0
- data/app/models/anoubis/tenant/menu_locale.rb +27 -0
- data/app/models/anoubis/tenant/system.rb +127 -0
- data/app/models/anoubis/tenant/system_locale.rb +19 -0
- data/app/models/anoubis/tenant/system_menu.rb +51 -0
- data/app/models/anoubis/tenant/tenant.rb +107 -0
- data/app/models/anoubis/tenant/tenant_system.rb +19 -0
- data/app/models/anoubis/tenant/user.rb +225 -0
- data/app/models/anoubis/tenant/user_group.rb +32 -0
- data/app/services/anoubis/core_service.rb +16 -0
- data/app/services/anoubis/session_service.rb +17 -0
- data/app/validators/presence_in_tenant_validator.rb +20 -0
- data/config/initializers/mime_type.rb +1 -0
- data/config/locales/en.yml +120 -0
- data/config/locales/ru.yml +245 -0
- data/config/routes.rb +74 -0
- data/db/migrate/20181018085843_create_tenants.rb +13 -0
- data/db/migrate/20181018111217_create_systems.rb +10 -0
- data/db/migrate/20181018111713_create_tenant_systems.rb +11 -0
- data/db/migrate/20181018111925_create_groups.rb +13 -0
- data/db/migrate/20181018112151_create_users.rb +25 -0
- data/db/migrate/20181018115737_add_title_to_users.rb +10 -0
- data/db/migrate/20181022060211_create_menus.rb +18 -0
- data/db/migrate/20181115055245_create_group_menus.rb +12 -0
- data/db/migrate/20181115060830_create_system_menus.rb +11 -0
- data/db/migrate/20181122062131_create_user_groups.rb +11 -0
- data/db/migrate/20181221060727_create_menu_locales.rb +14 -0
- data/db/migrate/20181225062303_create_system_locales.rb +11 -0
- data/db/migrate/20181225062339_create_group_locales.rb +11 -0
- data/db/seeds.rb +268 -0
- data/lib/anoubis/engine.rb +13 -0
- data/lib/anoubis/version.rb +5 -0
- data/lib/anoubis.rb +213 -0
- data/lib/tasks/anubis_tasks.rake +10 -0
- data/lib/tasks/sessions/clear_sessions.rake +10 -0
- data/spec/anubis_spec.rb +5 -0
- data/spec/controllers/anoubis/index_controller_spec.rb +77 -0
- data/spec/dummy/Rakefile +3 -0
- data/spec/dummy/app/assets/config/manifest.js +2 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +33 -0
- data/spec/dummy/bin/update +28 -0
- data/spec/dummy/config/application.rb +14 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +54 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +54 -0
- data/spec/dummy/config/environments/production.rb +85 -0
- data/spec/dummy/config/environments/test.rb +46 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cors.rb +16 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +34 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/config.ru +5 -0
- data/spec/dummy/db/schema.rb +167 -0
- data/spec/dummy/db/seeds.rb +1 -0
- data/spec/factories/anubis_group_locales.rb +7 -0
- data/spec/factories/anubis_group_menus.rb +7 -0
- data/spec/factories/anubis_groups.rb +6 -0
- data/spec/factories/anubis_menu_locales.rb +9 -0
- data/spec/factories/anubis_menus.rb +6 -0
- data/spec/factories/anubis_system_locales.rb +7 -0
- data/spec/factories/anubis_system_menus.rb +6 -0
- data/spec/factories/anubis_systems.rb +5 -0
- data/spec/factories/anubis_tenants.rb +7 -0
- data/spec/factories/anubis_users.rb +10 -0
- data/spec/integration/navigation_test.rb +7 -0
- data/spec/models/anoubis/group_locale_spec.rb +25 -0
- data/spec/models/anoubis/group_menu_spec.rb +50 -0
- data/spec/models/anoubis/group_spec.rb +52 -0
- data/spec/models/anoubis/menu_locale_spec.rb +31 -0
- data/spec/models/anoubis/menu_spec.rb +48 -0
- data/spec/models/anoubis/system_locale_spec.rb +20 -0
- data/spec/models/anoubis/system_menu_spec.rb +49 -0
- data/spec/models/anoubis/system_spec.rb +53 -0
- data/spec/models/anoubis/tenant_spec.rb +67 -0
- data/spec/models/anoubis/user_spec.rb +57 -0
- data/spec/rails_helper.rb +32 -0
- data/spec/requests/anoubis/users_request_spec.rb +5 -0
- data/spec/spec_helper.rb +13 -0
- metadata +408 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe GroupMenu, type: :model do
|
5
|
+
before(:all) do
|
6
|
+
@system = create :system, ident: 'test'
|
7
|
+
@group = create :group, ident: 'test', system: @system
|
8
|
+
@menu1 = create :menu, mode: 'menu1', action: 'data'
|
9
|
+
@menu2 = create :menu, mode: 'menu2', action: 'data', menu: @menu1
|
10
|
+
@menu3 = create :menu, mode: 'menu3', action: 'data', menu: @menu2
|
11
|
+
create :system_menu, system: @system, menu: @menu3
|
12
|
+
end
|
13
|
+
|
14
|
+
it "can create" do
|
15
|
+
expect(build_stubbed(:group_menu, group: @group, menu: @menu1)).to be_valid
|
16
|
+
end
|
17
|
+
|
18
|
+
it "can create tree" do
|
19
|
+
expect(build_stubbed(:group_menu, group: @group, menu: @menu3)).to be_valid
|
20
|
+
end
|
21
|
+
|
22
|
+
it "check created tree" do
|
23
|
+
create :group_menu, group: @group, menu: @menu3
|
24
|
+
expect(Anubis::GroupMenu.where(group: @group).count(:id)).to eq 3
|
25
|
+
end
|
26
|
+
|
27
|
+
it "can destroy" do
|
28
|
+
data = create :group_menu, group: @group, menu: @menu1
|
29
|
+
data.destroy
|
30
|
+
expect(data.destroyed?).to eq true
|
31
|
+
end
|
32
|
+
|
33
|
+
it "can destroy tree" do
|
34
|
+
create :group_menu, group: @group, menu: @menu3
|
35
|
+
Anubis::GroupMenu.where(group: @group, menu: @menu1).first.destroy
|
36
|
+
expect(Anubis::GroupMenu.where(group: @group).count(:id)).to eq 0
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
Anubis::SystemMenu.where(system: @system, menu: @menu1).first.destroy
|
41
|
+
@menu3.destroy
|
42
|
+
@menu2.destroy
|
43
|
+
@menu1.destroy
|
44
|
+
Anubis::Group.where(system_id: @system.id).each do |item|
|
45
|
+
item.destroy
|
46
|
+
end
|
47
|
+
@system.destroy
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe Group, type: :model do
|
5
|
+
it "is valid" do
|
6
|
+
expect(build_stubbed(:group)).to be_valid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has short ident" do
|
10
|
+
expect(build_stubbed(:group, ident: 'T'*2)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has long ident" do
|
14
|
+
expect(build_stubbed(:group, ident: 'T'*51)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has invalid ident" do
|
18
|
+
expect(build_stubbed(:group, ident: '1'*5)).to be_invalid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has duplicated ident" do
|
22
|
+
system = create :system
|
23
|
+
create :group, system: system
|
24
|
+
expect(build(:group, system: system)).to be_invalid
|
25
|
+
end
|
26
|
+
|
27
|
+
it "can change group" do
|
28
|
+
group = create :group
|
29
|
+
group.ident = 'wrkt'
|
30
|
+
expect(group.save).to eq true
|
31
|
+
end
|
32
|
+
|
33
|
+
it "can't change admin group ident" do
|
34
|
+
system = create :system
|
35
|
+
group = Anubis::Group.where(system: system, ident: 'admin').first
|
36
|
+
group.ident = 'tst'
|
37
|
+
expect(group.save).to eq false
|
38
|
+
end
|
39
|
+
|
40
|
+
it "can destroy" do
|
41
|
+
group = create :group, ident: 'dst'
|
42
|
+
group.destroy
|
43
|
+
expect(group.destroyed?).to eq true
|
44
|
+
end
|
45
|
+
|
46
|
+
it "can't destroy admin group of main system" do
|
47
|
+
group = Anubis::Group.where(system_id: 1, ident: 'admin').first
|
48
|
+
group.destroy
|
49
|
+
expect(group.destroyed?).to eq false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe MenuLocale, type: :model do
|
5
|
+
it "has short title" do
|
6
|
+
expect(build_stubbed(:menu_locale, title: 'T'*2)).to be_invalid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has long title" do
|
10
|
+
expect(build_stubbed(:menu_locale, title: 'T'*101)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has short page title" do
|
14
|
+
expect(build_stubbed(:menu_locale, page_title: 'T'*2)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has long page title" do
|
18
|
+
expect(build_stubbed(:menu_locale, page_title: 'T'*201)).to be_invalid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has long short title" do
|
22
|
+
expect(build_stubbed(:menu_locale, short_title: 'T'*201)).to be_invalid
|
23
|
+
end
|
24
|
+
|
25
|
+
it "can change data" do
|
26
|
+
menu = create :menu_locale
|
27
|
+
menu.title = 'Test title 2'
|
28
|
+
expect(menu.save).to eq true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe Menu, type: :model do
|
5
|
+
it "is valid" do
|
6
|
+
expect(build_stubbed(:menu)).to be_valid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has no action" do
|
10
|
+
expect(build_stubbed(:menu, action: nil)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has no mode" do
|
14
|
+
expect(build_stubbed(:menu, mode: nil)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has dublicate mode" do
|
18
|
+
create :menu
|
19
|
+
expect(build_stubbed(:menu)).to be_invalid
|
20
|
+
end
|
21
|
+
|
22
|
+
it "has invalid position" do
|
23
|
+
menu = create :menu
|
24
|
+
menu.position = 'dd'
|
25
|
+
expect(menu.save).to eq false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "can change data" do
|
29
|
+
menu = create :menu
|
30
|
+
menu.mode = 'tst_data'
|
31
|
+
expect(menu.save).to eq true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "can change position" do
|
35
|
+
menu1 = create :menu
|
36
|
+
menu2 = create :menu, mode: 'test2'
|
37
|
+
menu3 = create :menu, mode: 'test3'
|
38
|
+
menu3.position = menu1.position
|
39
|
+
expect(menu3.save).to eq true
|
40
|
+
end
|
41
|
+
|
42
|
+
it "can destroy" do
|
43
|
+
menu = create :menu
|
44
|
+
menu.destroy
|
45
|
+
expect(menu.destroyed?).to eq true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe SystemLocale, type: :model do
|
5
|
+
it "has short title" do
|
6
|
+
expect(build_stubbed(:system_locale, title: 'T'*2)).to be_invalid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has long title" do
|
10
|
+
expect(build_stubbed(:system_locale, title: 'T'*101)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has duplicated title" do
|
14
|
+
system = create :system
|
15
|
+
create :system_locale, system: system
|
16
|
+
expect(build_stubbed(:system_locale, system: system)).to be_invalid
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe SystemMenu, type: :model do
|
5
|
+
before(:all) do
|
6
|
+
@system = create :system, ident: 'test'
|
7
|
+
#@group = create :group, ident: 'test', title: 'Test', system: @system
|
8
|
+
@menu1 = create :menu, mode: 'menu1', action: 'data'
|
9
|
+
@menu2 = create :menu, mode: 'menu2', action: 'data', menu: @menu1
|
10
|
+
@menu3 = create :menu, mode: 'menu3', action: 'data', menu: @menu2
|
11
|
+
end
|
12
|
+
|
13
|
+
it "can create" do
|
14
|
+
expect(build_stubbed(:system_menu, system: @system, menu: @menu1)).to be_valid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "can create tree" do
|
18
|
+
expect(build_stubbed(:system_menu, system: @system, menu: @menu3)).to be_valid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "check created tree" do
|
22
|
+
create :system_menu, system: @system, menu: @menu3
|
23
|
+
expect(Anubis::SystemMenu.where(system: @system).count(:id)).to eq 3
|
24
|
+
end
|
25
|
+
|
26
|
+
it "can destroy" do
|
27
|
+
data = create :system_menu, system: @system, menu: @menu1
|
28
|
+
data.destroy
|
29
|
+
expect(data.destroyed?).to eq true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can destroy tree" do
|
33
|
+
create :system_menu, system: @system, menu: @menu3
|
34
|
+
Anubis::SystemMenu.where(system: @system, menu: @menu1).first.destroy
|
35
|
+
expect(Anubis::SystemMenu.where(system: @system).count(:id)).to eq 0
|
36
|
+
end
|
37
|
+
|
38
|
+
after(:all) do
|
39
|
+
@menu3.destroy
|
40
|
+
@menu2.destroy
|
41
|
+
@menu1.destroy
|
42
|
+
#@group.destroy
|
43
|
+
Anubis::Group.where(system_id: @system.id).each do |item|
|
44
|
+
item.destroy
|
45
|
+
end
|
46
|
+
@system.destroy
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe System, type: :model do
|
5
|
+
it "is valid" do
|
6
|
+
expect(build_stubbed(:system)).to be_valid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has short ident" do
|
10
|
+
expect(build_stubbed(:system, ident: 'T'*2)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has long ident" do
|
14
|
+
expect(build_stubbed(:system, ident: 'T'*16)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has invalid ident" do
|
18
|
+
expect(build_stubbed(:system, ident: '1'*5)).to be_invalid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has duplicated ident" do
|
22
|
+
create :system
|
23
|
+
expect(build_stubbed(:system)).to be_invalid
|
24
|
+
end
|
25
|
+
|
26
|
+
it "can change system" do
|
27
|
+
system = create :system
|
28
|
+
system.ident = 'wrkt'
|
29
|
+
expect(system.save).to eq true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can't change main system ident" do
|
33
|
+
system = Anubis::System.find(1)
|
34
|
+
system.ident = 'tst'
|
35
|
+
expect(system.save).to eq false
|
36
|
+
end
|
37
|
+
|
38
|
+
it "can destroy" do
|
39
|
+
system = create :system, ident: 'dst'
|
40
|
+
Anubis::Group.where(system_id: system.id).each do |item|
|
41
|
+
item.destroy
|
42
|
+
end
|
43
|
+
system.destroy
|
44
|
+
expect(system.destroyed?).to eq true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "can't destroy main system" do
|
48
|
+
system = Anubis::System.find(1)
|
49
|
+
system.destroy
|
50
|
+
expect(system.destroyed?).to eq false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe Tenant, type: :model do
|
5
|
+
it "is valid" do
|
6
|
+
expect(build_stubbed(:tenant)).to be_valid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "has short title" do
|
10
|
+
expect(build_stubbed(:tenant, title: 'T'*2)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "has long title" do
|
14
|
+
expect(build_stubbed(:tenant, title: 'T'*101)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has short ident" do
|
18
|
+
expect(build_stubbed(:tenant, ident: 'T'*2)).to be_invalid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has long ident" do
|
22
|
+
expect(build_stubbed(:tenant, ident: 'T'*11)).to be_invalid
|
23
|
+
end
|
24
|
+
|
25
|
+
it "has invalid ident" do
|
26
|
+
expect(build_stubbed(:tenant, ident: '1'*5)).to be_invalid
|
27
|
+
end
|
28
|
+
|
29
|
+
it "has duplicated title" do
|
30
|
+
create :tenant
|
31
|
+
expect(build_stubbed(:tenant, ident: 'T'*5)).to be_invalid
|
32
|
+
end
|
33
|
+
|
34
|
+
it "has duplicated ident" do
|
35
|
+
create :tenant
|
36
|
+
expect(build_stubbed(:tenant, title: 'T'*10)).to be_invalid
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can change tenant" do
|
40
|
+
tenant = create :tenant
|
41
|
+
tenant.title = 'Work Tenant Test'
|
42
|
+
tenant.ident = 'wrkt'
|
43
|
+
expect(tenant.save).to eq true
|
44
|
+
end
|
45
|
+
|
46
|
+
it "can't change system tenant ident" do
|
47
|
+
tenant = Anubis::Tenant.find(1)
|
48
|
+
tenant.ident = 'tst'
|
49
|
+
expect(tenant.save).to eq false
|
50
|
+
end
|
51
|
+
|
52
|
+
it "can destroy" do
|
53
|
+
tenant = create :tenant, title: 'Destroy', ident: 'dst'
|
54
|
+
Anubis::TenantSystem.where(tenant_id: tenant.id).each do |item|
|
55
|
+
item.destroy
|
56
|
+
end
|
57
|
+
tenant.destroy
|
58
|
+
expect(tenant.destroyed?).to eq true
|
59
|
+
end
|
60
|
+
|
61
|
+
it "can't destroy system tenant" do
|
62
|
+
tenant = Anubis::Tenant.find(1)
|
63
|
+
tenant.destroy
|
64
|
+
expect(tenant.destroyed?).to eq false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module Anubis
|
4
|
+
RSpec.describe User, type: :model do
|
5
|
+
it "is valid" do
|
6
|
+
expect(build_stubbed(:user)).to be_valid
|
7
|
+
end
|
8
|
+
|
9
|
+
it "hasn't name" do
|
10
|
+
expect(build_stubbed(:user, name: nil)).to be_invalid
|
11
|
+
end
|
12
|
+
|
13
|
+
it "hasn't surname" do
|
14
|
+
expect(build_stubbed(:user, surname: nil)).to be_invalid
|
15
|
+
end
|
16
|
+
|
17
|
+
it "hasn't email" do
|
18
|
+
expect(build_stubbed(:user, email: nil)).to be_invalid
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has incorrect email" do
|
22
|
+
expect(build_stubbed(:user, email: 'T'*10)).to be_invalid
|
23
|
+
end
|
24
|
+
|
25
|
+
it "has short pasword" do
|
26
|
+
expect(build_stubbed(:user, password: 'T'*4, password_confirmation: 'T'*4)).to be_invalid
|
27
|
+
end
|
28
|
+
|
29
|
+
it "has different paswords" do
|
30
|
+
expect(build_stubbed(:user, password: 'T'*5, password_confirmation: 'I'*5)).to be_invalid
|
31
|
+
end
|
32
|
+
|
33
|
+
it "has duplicated email" do
|
34
|
+
tenant = create :tenant
|
35
|
+
create :user, tenant: tenant
|
36
|
+
expect(build(:user, tenant: tenant)).to be_invalid
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can change email" do
|
40
|
+
user = create :user
|
41
|
+
user.email = 'wrk@wrk.com'
|
42
|
+
expect(user.save).to eq true
|
43
|
+
end
|
44
|
+
|
45
|
+
it "can destroy user" do
|
46
|
+
user = create :user
|
47
|
+
user.destroy
|
48
|
+
expect(user.destroyed?).to eq true
|
49
|
+
end
|
50
|
+
|
51
|
+
it "can't destroy Main Administrator" do
|
52
|
+
user = Anubis::User.find(1)
|
53
|
+
user.destroy
|
54
|
+
expect(user.destroyed?).to eq false
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
ENV['RAILS_ENV'] ||= 'test'
|
4
|
+
require File.expand_path('../dummy/config/environment', __FILE__)
|
5
|
+
|
6
|
+
# Prevent database truncation if the environment is production
|
7
|
+
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
8
|
+
|
9
|
+
require 'rspec/rails'
|
10
|
+
|
11
|
+
require 'factory_bot_rails'
|
12
|
+
|
13
|
+
begin
|
14
|
+
ActiveRecord::Migration.maintain_test_schema!
|
15
|
+
rescue ActiveRecord::PendingMigrationError => e
|
16
|
+
puts e.to_s.strip
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
RSpec.configure do |config|
|
20
|
+
config.use_transactional_fixtures = true
|
21
|
+
|
22
|
+
config.infer_base_class_for_anonymous_controllers = false
|
23
|
+
|
24
|
+
config.order = "random"
|
25
|
+
|
26
|
+
config.infer_spec_type_from_file_location!
|
27
|
+
|
28
|
+
# Filter lines from Rails gems in backtraces.
|
29
|
+
config.filter_rails_from_backtrace!
|
30
|
+
|
31
|
+
config.include FactoryBot::Syntax::Methods
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.expect_with :rspec do |expectations|
|
3
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
4
|
+
end
|
5
|
+
|
6
|
+
config.mock_with :rspec do |mocks|
|
7
|
+
mocks.verify_partial_doubles = true
|
8
|
+
end
|
9
|
+
|
10
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
11
|
+
|
12
|
+
config.order = :random
|
13
|
+
end
|