milia 1.2.1 → 1.3.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/confirmations_controller.rb +7 -7
  3. data/app/controllers/registrations_controller.rb +13 -19
  4. data/app/views/devise/registrations/new.html.haml +53 -0
  5. data/lib/generators/milia/install_generator.rb +44 -41
  6. data/lib/generators/milia/templates/devise_permitted_parameters.rb +18 -0
  7. data/lib/generators/milia/templates/initializer.rb +3 -9
  8. data/lib/milia.rb +3 -22
  9. data/lib/milia/base.rb +88 -109
  10. data/lib/milia/control.rb +25 -25
  11. data/lib/milia/invite_member.rb +6 -6
  12. data/lib/milia/version.rb +1 -1
  13. metadata +16 -184
  14. data/.document +0 -5
  15. data/.gitignore +0 -94
  16. data/.ruby-gemset +0 -1
  17. data/.ruby-version +0 -1
  18. data/.slugignore +0 -2
  19. data/.travis.yml +0 -4
  20. data/Gemfile +0 -4
  21. data/LICENSE.txt +0 -20
  22. data/README.md +0 -1207
  23. data/Rakefile +0 -1
  24. data/doc/gemfile_addition.txt +0 -28
  25. data/doc/manual_sample.sh +0 -816
  26. data/doc/ref_notes.txt +0 -155
  27. data/doc/sample.sh +0 -276
  28. data/markdown.rb +0 -38
  29. data/milia.gemspec +0 -29
  30. data/test/.ruby-gemset +0 -1
  31. data/test/.ruby-version +0 -1
  32. data/test/Gemfile +0 -81
  33. data/test/Gemfile.lock +0 -223
  34. data/test/README.md +0 -83
  35. data/test/Rakefile +0 -6
  36. data/test/app/assets/javascripts/application.js +0 -16
  37. data/test/app/assets/stylesheets/application.css +0 -13
  38. data/test/app/controllers/application_controller.rb +0 -13
  39. data/test/app/controllers/home_controller.rb +0 -10
  40. data/test/app/helpers/application_helper.rb +0 -2
  41. data/test/app/models/member.rb +0 -34
  42. data/test/app/models/post.rb +0 -14
  43. data/test/app/models/team.rb +0 -9
  44. data/test/app/models/team_asset.rb +0 -6
  45. data/test/app/models/tenant.rb +0 -54
  46. data/test/app/models/user.rb +0 -14
  47. data/test/app/models/zine.rb +0 -8
  48. data/test/app/views/home/index.html.erb +0 -2
  49. data/test/app/views/home/show.html.erb +0 -2
  50. data/test/app/views/layouts/application.html.erb +0 -14
  51. data/test/bin/bundle +0 -3
  52. data/test/bin/rails +0 -4
  53. data/test/bin/rake +0 -4
  54. data/test/config/application.rb +0 -36
  55. data/test/config/boot.rb +0 -4
  56. data/test/config/database.yml +0 -25
  57. data/test/config/environment.rb +0 -5
  58. data/test/config/environments/development.rb +0 -48
  59. data/test/config/environments/production.rb +0 -95
  60. data/test/config/environments/test.rb +0 -42
  61. data/test/config/initializers/backtrace_silencers.rb +0 -7
  62. data/test/config/initializers/devise.rb +0 -254
  63. data/test/config/initializers/filter_parameter_logging.rb +0 -4
  64. data/test/config/initializers/inflections.rb +0 -16
  65. data/test/config/initializers/milia.rb +0 -51
  66. data/test/config/initializers/mime_types.rb +0 -5
  67. data/test/config/initializers/secret_token.rb +0 -12
  68. data/test/config/initializers/session_store.rb +0 -3
  69. data/test/config/initializers/wrap_parameters.rb +0 -14
  70. data/test/config/locales/en.yml +0 -23
  71. data/test/config/routes.rb +0 -77
  72. data/test/db/migrate/20111012050200_add_sessions_table.rb +0 -12
  73. data/test/db/migrate/20111012050340_devise_create_users.rb +0 -48
  74. data/test/db/migrate/20111012050532_create_tenants.rb +0 -11
  75. data/test/db/migrate/20111012050600_create_tenants_users_join_table.rb +0 -8
  76. data/test/db/migrate/20111012050650_create_members.rb +0 -12
  77. data/test/db/migrate/20111012231923_create_posts.rb +0 -12
  78. data/test/db/migrate/20111013050657_create_zines.rb +0 -10
  79. data/test/db/migrate/20111013050753_create_teams.rb +0 -10
  80. data/test/db/migrate/20111013050837_create_team_assets.rb +0 -11
  81. data/test/db/schema.rb +0 -126
  82. data/test/db/seeds.rb +0 -7
  83. data/test/test/controllers/home_controller_test.rb +0 -132
  84. data/test/test/ctlr_test_helper.rb +0 -11
  85. data/test/test/fixtures/members.yml +0 -35
  86. data/test/test/fixtures/posts.yml +0 -96
  87. data/test/test/fixtures/team_assets.yml +0 -30
  88. data/test/test/fixtures/teams.yml +0 -17
  89. data/test/test/fixtures/tenants.yml +0 -12
  90. data/test/test/fixtures/tenants_users.yml +0 -15
  91. data/test/test/fixtures/users.yml +0 -33
  92. data/test/test/fixtures/zines.yml +0 -25
  93. data/test/test/models/member_test.rb +0 -75
  94. data/test/test/models/post_test.rb +0 -66
  95. data/test/test/models/team_test.rb +0 -49
  96. data/test/test/models/tenant_test.rb +0 -228
  97. data/test/test/models/user_test.rb +0 -182
  98. data/test/test/models/zine_test.rb +0 -40
  99. data/test/test/test_helper.rb +0 -31
@@ -1,96 +0,0 @@
1
- post_apple_1_1_a:
2
- tenant_id: 1
3
- member: quentin_1
4
- zine: zine_1_a
5
-
6
- post_peach_1_1_a:
7
- tenant_id: 1
8
- member: quentin_1
9
- zine: zine_1_a
10
-
11
- post_plum_1_1_b:
12
- tenant_id: 1
13
- member: quentin_1
14
- zine: zine_1_b
15
-
16
- post_apricot_1_1_b:
17
- tenant_id: 1
18
- member: quentin_1
19
- zine: zine_1_b
20
-
21
- post_pear_1_1_c:
22
- tenant_id: 1
23
- member: quentin_1
24
- zine: zine_1_c
25
-
26
- post_cherry_1_1_c:
27
- tenant_id: 1
28
- member: quentin_1
29
- zine: zine_1_c
30
-
31
- post_berry_1_1_c:
32
- tenant_id: 1
33
- member: quentin_1
34
- zine: zine_1_c
35
-
36
- # ------------------------------------
37
-
38
- post_apple_2_1_a:
39
- tenant_id: 2
40
- member: quentin_2
41
- zine: zine_2_a
42
-
43
- post_berry_2_1_a:
44
- tenant_id: 2
45
- member: demarcus_2
46
- zine: zine_2_a
47
-
48
- post_peach_2_1_a:
49
- tenant_id: 2
50
- member: demarcus_2
51
- zine: zine_2_a
52
-
53
- post_plum_2_1_b:
54
- tenant_id: 2
55
- member: quentin_2
56
- zine: zine_2_b
57
-
58
- post_apricot_2_1_b:
59
- tenant_id: 2
60
- member: jermaine_2
61
- zine: zine_2_b
62
-
63
- # ------------------------------------
64
-
65
- post_apple_3_1_a:
66
- tenant_id: 3
67
- member: jermaine_3
68
- zine: zine_3_a
69
-
70
- post_peach_3_1_a:
71
- tenant_id: 3
72
- member: jermaine_3
73
- zine: zine_3_a
74
-
75
- post_plum_3_1_a:
76
- tenant_id: 3
77
- member: jermaine_3
78
- zine: zine_3_a
79
-
80
- post_apricot_3_1_a:
81
- tenant_id: 3
82
- member: jermaine_3
83
- zine: zine_3_a
84
-
85
- post_pear_3_1_a:
86
- tenant_id: 3
87
- member: jermaine_3
88
- zine: zine_3_a
89
-
90
- post_cherry_3_1_a:
91
- tenant_id: 3
92
- member: jermaine_3
93
- zine: zine_3_a
94
-
95
-
96
-
@@ -1,30 +0,0 @@
1
- ta_1_q_a:
2
- tenant_id: 1
3
- member: quentin_1
4
- team: team_1_a
5
-
6
- ta_2_q_a:
7
- tenant_id: 2
8
- member: quentin_2
9
- team: team_2_a
10
-
11
- ta_2_q_b:
12
- tenant_id: 2
13
- member: quentin_2
14
- team: team_2_b
15
-
16
- ta_2_d_a:
17
- tenant_id: 2
18
- member: demarcus_2
19
- team: team_2_a
20
-
21
- ta_2_j_b:
22
- tenant_id: 2
23
- member: jermaine_2
24
- team: team_2_b
25
-
26
- ta_3_j_a:
27
- tenant_id: 3
28
- member: jermaine_3
29
- team: team_3_a
30
-
@@ -1,17 +0,0 @@
1
- team_1_a:
2
- tenant_id: 1
3
- name: team_1_a
4
-
5
- team_2_a:
6
- tenant_id: 2
7
- name: team_2_a
8
-
9
- team_2_b:
10
- tenant_id: 2
11
- name: team_2_b
12
-
13
- team_3_a:
14
- tenant_id: 3
15
- name: team_3_a
16
-
17
-
@@ -1,12 +0,0 @@
1
- tenant_1:
2
- id: 1
3
- name: tenant_1
4
-
5
- tenant_2:
6
- id: 2
7
- name: tenant_2
8
-
9
- tenant_3:
10
- id: 3
11
- name: tenant_3
12
-
@@ -1,15 +0,0 @@
1
- uw_1:
2
- tenant_id: 1
3
- user_id: 1
4
- uw_2:
5
- tenant_id: 2
6
- user_id: 2
7
- uw_3:
8
- tenant_id: 3
9
- user_id: 3
10
- uw_4:
11
- tenant_id: 2
12
- user_id: 1
13
- uw_5:
14
- tenant_id: 2
15
- user_id: 3
@@ -1,33 +0,0 @@
1
-
2
- quentin:
3
- id: 1
4
- email: quentin@example.com
5
- encrypted_password: "$2a$10$aiN/4aMQ/VlsIK8Y1GdJq.SPCcNmS3s5d7rgm7y7.VVLoVYmRf0Re" # 'MonkeyMocha'
6
- created_at: <%= 5.days.ago.to_s :db %>
7
- confirmation_token:
8
- confirmed_at: <%= 5.days.ago.to_s :db %>
9
- confirmation_sent_at: <%= 5.days.ago.to_s :db %>
10
- authentication_token: 1b6453892473a467d07372d45eb05abc20316470
11
- reset_password_token: "BJDxuZzBanQKrATjrDeP"
12
- reset_password_sent_at: <%= 1.hours.ago.to_s :db %>
13
-
14
- # raw_confirmation_token for below: BJDxuZzBanQKrATjrDeP
15
- # demarcus is unconfirmed here
16
- demarcus:
17
- id: 2
18
- email: demarcus@example.com
19
- encrypted_password: "$2a$10$aiN/4aMQ/VlsIK8Y1GdJq.SPCcNmS3s5d7rgm7y7.VVLoVYmRf0Re" # 'MonkeyMocha'
20
- created_at: <%= 1.days.ago.to_s :db %>
21
- confirmation_token: '31da0519d68761dab9b6cb160a918227035baffd56498873bd5eb74b4e00a8ed'
22
- authentication_token: 1b6453892473a467d07372d45eb05abc2031647a
23
-
24
- jermaine:
25
- id: 3
26
- email: jermaine@example.com
27
- encrypted_password: "$2a$10$aiN/4aMQ/VlsIK8Y1GdJq.SPCcNmS3s5d7rgm7y7.VVLoVYmRf0Re" # 'MonkeyMocha'
28
- created_at: <%= 5.days.ago.to_s :db %>
29
- confirmation_token:
30
- confirmed_at: <%= 5.days.ago.to_s :db %>
31
- confirmation_sent_at: <%= 5.days.ago.to_s :db %>
32
- authentication_token: 1b6453892473a467d07372d45eb05abc2031647b
33
-
@@ -1,25 +0,0 @@
1
- zine_1_a:
2
- tenant_id: 1
3
- team: team_1_a
4
-
5
- zine_1_b:
6
- tenant_id: 1
7
- team: team_1_a
8
-
9
- zine_1_c:
10
- tenant_id: 1
11
- team: team_1_a
12
-
13
- zine_2_a:
14
- tenant_id: 2
15
- team: team_2_a
16
-
17
- zine_2_b:
18
- tenant_id: 2
19
- team: team_2_b
20
-
21
- zine_3_a:
22
- tenant_id: 3
23
- team: team_3_a
24
-
25
-
@@ -1,75 +0,0 @@
1
- require 'test_helper'
2
-
3
- class MemberTest < ActiveSupport::TestCase
4
-
5
- context "a member" do
6
-
7
- setup do
8
- Tenant.set_current_tenant( tenants( :tenant_1 ).id )
9
- @member = members(:quentin_1)
10
- end
11
-
12
- # validate multi-tenanting structure
13
- should have_db_column(:tenant_id)
14
- should "define the current tenant" do
15
- assert Thread.current[:tenant_id]
16
- end
17
- should "match the current tenant" do
18
- a_member = Member.first
19
- assert_equal a_member.tenant_id, Thread.current[:tenant_id]
20
- end
21
-
22
- # validate the model
23
- should belong_to( :user )
24
- should have_many( :posts )
25
- should have_many( :zines ).through( :posts )
26
- should have_many( :team_assets )
27
- should have_many( :teams ).through( :team_assets )
28
-
29
- # validate specific member methods
30
- should 'create new member for new admin' do
31
- # setup new world
32
- tenant = Tenant.create_new_tenant(
33
- {name: "Mangoland"},
34
- {email: "billybob@bob.com"},
35
- {coupon: "FreeTrial"}
36
- )
37
- assert tenant.errors.empty?
38
- Tenant.set_current_tenant( tenant ) # change world to new tenant
39
-
40
- # setup new user
41
- user = User.new(email: "limesublime@example.com")
42
- assert user.save_and_invite_member
43
- assert user.errors.empty?
44
-
45
- # setup new member
46
- member = nil
47
- assert_nothing_raised {
48
- member = Member.create_org_admin( user )
49
- assert member.errors.empty?
50
- }
51
-
52
- assert_equal Member::DEFAULT_ADMIN[:first_name],member.first_name
53
- assert_equal Member::DEFAULT_ADMIN[:last_name],member.last_name
54
- assert_equal tenant.id, member.tenant_id
55
- assert_equal user.member,member
56
-
57
- end # should do
58
-
59
- should 'create new member for existing tenant' do
60
- tenant = tenants( :tenant_1 )
61
- user = users( :quentin )
62
- member = Member.create_new_member( user, {last_name: 'Blue', first_name: 'Wild'} )
63
- assert member.errors.empty?
64
- assert_equal tenant.id, member.tenant_id
65
- assert_equal user.member,member
66
- end # should do
67
-
68
- should "not get any non-world member" do
69
- x = users(:demarcus)
70
- assert x.member.nil?
71
- end
72
-
73
- end # context member
74
-
75
- end # class member
@@ -1,66 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PostTest < ActiveSupport::TestCase
4
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
-
6
- context "a post" do
7
-
8
- setup do
9
- Tenant.set_current_tenant( tenants( :tenant_1 ).id )
10
- @zine = Zine.first
11
- end
12
-
13
- # validate multi-tenanting structure
14
- should have_db_column(:tenant_id)
15
- should "match the current tenant" do
16
- assert_equal @zine.tenant_id, Thread.current[:tenant_id]
17
- end
18
-
19
- # validate the model
20
- should belong_to( :member )
21
- should belong_to( :zine )
22
- should have_one(:team).through(:zine)
23
-
24
- # model-specific tests
25
- should "get all posts within tenant" do
26
- assert_equal 7, Post.count
27
- end
28
-
29
- should "get only member posts in tenant" do
30
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
31
-
32
- x = members(:quentin_2)
33
- assert_equal 2, x.posts.size
34
- end
35
-
36
- should "see jermaine in two tenants with dif posts" do
37
- jermaine = users( :jermaine )
38
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
39
- assert_equal 1, jermaine.member.posts.size
40
-
41
- Tenant.set_current_tenant( tenants( :tenant_3 ).id )
42
- jermaine.reload
43
- assert_equal 6, jermaine.member.posts.size
44
- end
45
-
46
- should "get all team posts" do
47
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
48
- team = teams( :team_2_b )
49
- assert_equal 2, team.posts.size
50
- end
51
-
52
- should 'match team in a post' do
53
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
54
- assert_equal posts(:post_plum_2_1_b).team, teams(:team_2_b)
55
- end # should do
56
-
57
- should 'match a posts zine with tenant' do
58
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
59
- assert_equal 2,posts(:post_plum_2_1_b).zine.tenant_id
60
- end # should do
61
-
62
- end # context post
63
-
64
- # _____________________________________________________________________________
65
-
66
- end # class test
@@ -1,49 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TeamTest < ActiveSupport::TestCase
4
-
5
- context "a team" do
6
-
7
- setup do
8
- Tenant.set_current_tenant( tenants( :tenant_2 ).id )
9
- @team = Team.first
10
- end
11
-
12
-
13
- # validate multi-tenanting structure
14
- should have_db_column(:tenant_id)
15
- should "match the current tenant" do
16
- assert_equal @team.tenant_id, Thread.current[:tenant_id]
17
- end
18
-
19
- should have_many( :team_assets )
20
- should have_many( :team_members ).through( :team_assets )
21
-
22
- should have_many( :zines )
23
- should have_many( :posts ).through( :zines )
24
-
25
- # validate the particular associations in the model
26
- should 'find team members through teams' do
27
- assert_equal 2, teams( :team_2_b ).team_members.count
28
- end #should do
29
-
30
- should 'find posts' do
31
- assert_equal 3, teams( :team_2_a ).posts.count
32
- end #should do
33
-
34
- should 'match a team with tenant' do
35
- assert_equal 2,teams( :team_2_b ).tenant_id
36
- end # should do
37
-
38
- should 'check team assets' do
39
- assert_equal 2, teams( :team_2_a ).team_assets.count
40
- end # should do
41
-
42
- should 'check zines' do
43
- assert_equal 1, teams( :team_2_b ).zines.count
44
- end # should do
45
-
46
-
47
- end # context team
48
-
49
- end # team
@@ -1,228 +0,0 @@
1
- require 'test_helper'
2
-
3
- # #############################################################################
4
- # Note: this tests not only the methods in models/tenant.rb but
5
- # also all of the milia-injected methods from base.rb
6
- # #############################################################################
7
-
8
- class TenantTest < ActiveSupport::TestCase
9
-
10
-
11
- context "a tenant" do
12
-
13
- # ------------------------------------------------------------------------
14
- setup do
15
- @tenant =tenants( :tenant_1 )
16
- Tenant.set_current_tenant( @tenant.id )
17
- end
18
-
19
- # #############################################################################
20
- # #############################################################################
21
- # ------------------------------------------------------------------------
22
- # validate multi-tenanting structure
23
- # ------------------------------------------------------------------------
24
- should have_db_column(:tenant_id)
25
- should have_db_column(:name)
26
- should have_many( :posts )
27
- should have_many( :zines )
28
- should have_many( :team_assets )
29
- should have_many( :teams )
30
- should have_many( :members )
31
- should have_and_belong_to_many( :users )
32
-
33
- # ------------------------------------------------------------------------
34
- # validate tenant creation callbacks, validators
35
- # ------------------------------------------------------------------------
36
- should 'have a new_signups_not_permitted' do
37
- assert Tenant.respond_to? :new_signups_not_permitted?
38
- assert !Tenant.new_signups_not_permitted?( {} )
39
- end # should do
40
-
41
- should 'create new tenant' do
42
-
43
- assert_difference( 'Tenant.count' ) do
44
- # setup new world
45
- tenant = Tenant.create_new_tenant(
46
- {name: "Mangoland"},
47
- {email: "billybob@bob.com"},
48
- {coupon: "FreeTrial"}
49
- )
50
- assert_not_nil tenant
51
- assert_kind_of Tenant,tenant
52
- assert tenant.errors.empty?
53
- assert_equal "Mangoland", tenant.name
54
- end
55
-
56
- end # should do
57
-
58
- should 'tenant signup callback' do
59
- # setup new world
60
- tenant = Tenant.create_new_tenant(
61
- {name: "Mangoland"},
62
- {email: "billybob@bob.com"},
63
- {coupon: "FreeTrial"}
64
- )
65
- assert tenant.errors.empty?
66
- Tenant.set_current_tenant( tenant ) # change world to new tenant
67
-
68
- # setup new user
69
- user = User.new(email: "limesublime@example.com")
70
- assert user.save_and_invite_member
71
- assert user.errors.empty?
72
-
73
- # setup new member
74
- member = nil
75
- assert_difference( 'Member.count' ) do
76
- assert_nothing_raised {
77
- member = Tenant.tenant_signup(user, tenant)
78
- assert member.errors.empty?
79
- }
80
- end # new Member DB records created
81
-
82
- assert_equal Member::DEFAULT_ADMIN[:first_name],member.first_name
83
- assert_equal Member::DEFAULT_ADMIN[:last_name],member.last_name
84
- assert_equal tenant.id, member.tenant_id
85
- assert_equal user.member,member
86
-
87
- end # should do
88
-
89
- # #############################################################################
90
- # #### acts_as_universal_and_determines_tenant injected methods #############
91
- # #############################################################################
92
-
93
- should 'current_tenant_id - non nil' do
94
- tid = Tenant.current_tenant_id
95
- assert_kind_of Integer,tid
96
- assert_equal tenants( :tenant_1 ).id,tid
97
- end # should do
98
-
99
- should 'current_tenant - nil' do
100
- # force the current_tenant to be nil
101
- Thread.current[:tenant_id] = nil
102
-
103
- tenant = Tenant.current_tenant
104
- assert_nil tenant
105
-
106
- end # should do
107
-
108
- should 'current_tenant - valid tid' do
109
- tenant = Tenant.current_tenant
110
- assert_kind_of Tenant,tenant
111
- assert_equal tenants( :tenant_1 ),tenant
112
- end # should do
113
-
114
- should 'current_tenant - invalid tid' do
115
- # force the current_tenant to be nil
116
- Thread.current[:tenant_id] = 500
117
-
118
- assert_nothing_raised {
119
- assert_nil Tenant.current_tenant
120
- }
121
-
122
- end # should do
123
-
124
- should 'set current tenant - tenant obj' do
125
- assert_equal tenants( :tenant_1 ).id, Tenant.current_tenant_id
126
- Tenant.set_current_tenant( tenants( :tenant_3 ) )
127
- assert_equal tenants( :tenant_3 ).id, Tenant.current_tenant_id
128
- end # should do
129
-
130
- should 'set current tenant - tenant id' do
131
- assert_equal tenants( :tenant_1 ).id, Tenant.current_tenant_id
132
- Tenant.set_current_tenant( tenants( :tenant_3 ).id )
133
- assert_equal tenants( :tenant_3 ).id, Tenant.current_tenant_id
134
- end # should do
135
-
136
- should 'NOT set current tenant - invalid arg' do
137
- assert_equal tenants( :tenant_1 ).id, Tenant.current_tenant_id
138
- assert_raise(ArgumentError) {
139
- Tenant.set_current_tenant( '2' )
140
- }
141
- assert_equal tenants( :tenant_1 ).id, Tenant.current_tenant_id
142
- end # should do
143
-
144
- RESTRICT_SNIPPET = 'posts.tenant_id = 1 AND zines.tenant_id = 1'
145
- should 'prepare a restrict tenant snippet' do
146
- assert_equal RESTRICT_SNIPPET, Tenant.where_restrict_tenant( Post, Zine )
147
- end # should do
148
-
149
- should 'clear tenant.users when tenant destroyed' do
150
- target = tenants(:tenant_2)
151
- Tenant.set_current_tenant( target )
152
- quentin = users(:quentin)
153
- assert_equal 2,quentin.tenants.count
154
-
155
- assert_difference( "Tenant.count", -1 ) do
156
- target.destroy
157
- end
158
-
159
- quentin.reload
160
- assert_equal 1,quentin.tenants.count
161
-
162
- end # should do
163
-
164
-
165
- # #############################################################################
166
- # #### acts_as_tenant injected methods #############
167
- # #############################################################################
168
-
169
- should "raise exception if tenant is different" do
170
- target = members(:quentin_1)
171
- # now force tenant to invalid
172
- Tenant.set_current_tenant( 0 )
173
-
174
- assert_raise(::Milia::Control::InvalidTenantAccess,
175
- "InvalidTenantAccess if tenants dont match"){
176
- target.update_attributes( :first_name => "duck walk" )
177
- }
178
- end # should do
179
-
180
- should 'raise exception if tenanted tid not nil - destroy' do
181
- target = members(:quentin_1)
182
- assert_no_difference('Member.count') do
183
- assert_raise(::Milia::Control::InvalidTenantAccess) {
184
- target.tenant_id = 3
185
- target.destroy
186
- }
187
- end # no diff do
188
- end # should do
189
-
190
- # #############################################################################
191
- # #### acts_as_universal injected methods #############
192
- # #############################################################################
193
- should 'always force universal tenant id to nil' do
194
- # setup new world
195
- tenant = Tenant.create_new_tenant(
196
- {name: "Mangoland", tenant_id: 1},
197
- {email: "billybob@bob.com"},
198
- {coupon: "FreeTrial"}
199
- )
200
- assert tenant.errors.empty?
201
- assert_nil tenant.tenant_id
202
- end # should do
203
-
204
-
205
- should 'raise exception if tid not nil - save' do
206
- tenant = tenants(:tenant_1)
207
- assert_raise(::Milia::Control::InvalidTenantAccess) {
208
- tenant.update_attributes( tenant_id: 3, name: 'wild blue2' )
209
- }
210
-
211
- end # should do
212
-
213
- should 'raise exception if tid not nil - destroy' do
214
- tenant = tenants(:tenant_1)
215
- assert_no_difference('Tenant.count') do
216
- assert_raise(::Milia::Control::InvalidTenantAccess) {
217
- tenant.tenant_id = 3
218
- tenant.destroy
219
- }
220
- end # no diff do
221
- end # should do
222
-
223
- # #############################################################################
224
-
225
- end # context
226
-
227
- # #############################################################################
228
- end # class test