mno-enterprise-core 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/mno_enterprise/application_controller.rb +5 -5
  3. data/app/helpers/mno_enterprise/image_helper.rb +32 -0
  4. data/app/models/mno_enterprise/app.rb +11 -2
  5. data/app/models/mno_enterprise/base_resource.rb +2 -0
  6. data/app/models/mno_enterprise/credit_card.rb +7 -4
  7. data/app/models/mno_enterprise/impac/dashboard.rb +4 -1
  8. data/app/models/mno_enterprise/impac/widget.rb +10 -4
  9. data/app/models/mno_enterprise/org_invite.rb +7 -3
  10. data/app/models/mno_enterprise/shared_entity.rb +17 -0
  11. data/app/models/mno_enterprise/user.rb +7 -2
  12. data/app/pdf/mno_enterprise/invoice_pdf.rb +176 -183
  13. data/app/views/system_notifications/email-change.html.erb +1 -1
  14. data/app/views/system_notifications/email-change.text.erb +1 -1
  15. data/config/initializers/audit_log.rb +28 -1
  16. data/config/locales/templates/components/en.yml +29 -4
  17. data/config/locales/templates/dashboard/en.yml +2 -2
  18. data/config/locales/templates/dashboard/marketplace/en.yml +5 -5
  19. data/config/locales/templates/dashboard/organization/en.yml +14 -8
  20. data/config/locales/templates/dashboard/organization/id.yml +4 -4
  21. data/config/locales/templates/dashboard/organization/zh.yml +4 -4
  22. data/config/locales/templates/dashboard/teams/en.yml +3 -3
  23. data/config/locales/templates/dashboard/teams/id.yml +3 -3
  24. data/config/locales/templates/dashboard/teams/zh.yml +3 -3
  25. data/config/locales/templates/onboarding/en.yml +45 -0
  26. data/config/locales/views/auth/confirmations/en.yml +5 -3
  27. data/config/locales/views/webhook/o_auth/providers/en.yml +2 -2
  28. data/lib/generators/mno_enterprise/install/install_generator.rb +19 -1
  29. data/lib/generators/mno_enterprise/install/templates/Procfile.dev +1 -0
  30. data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +7 -50
  31. data/lib/generators/mno_enterprise/install/templates/config/newrelic.yml +3 -3
  32. data/lib/generators/mno_enterprise/install/templates/config/settings.yml +49 -2
  33. data/lib/generators/mno_enterprise/install/templates/nginx.conf +71 -0
  34. data/lib/generators/mno_enterprise/install/templates/stylesheets/variables.less +148 -141
  35. data/lib/html_processor.rb +14 -14
  36. data/lib/mno_enterprise/concerns/controllers/auth/registrations_controller.rb +18 -15
  37. data/lib/mno_enterprise/concerns/models/ability.rb +6 -3
  38. data/lib/mno_enterprise/concerns/models/app_instance.rb +2 -3
  39. data/lib/mno_enterprise/concerns/models/intercom_user.rb +22 -0
  40. data/lib/mno_enterprise/concerns/models/organization.rb +8 -0
  41. data/lib/mno_enterprise/concerns/models/shared_entity.rb +36 -0
  42. data/lib/mno_enterprise/concerns/models/team.rb +7 -0
  43. data/lib/mno_enterprise/testing_support/common_rake.rb +1 -1
  44. data/lib/mno_enterprise/testing_support/factories/apps.rb +6 -0
  45. data/lib/mno_enterprise/testing_support/factories/audit_event.rb +2 -0
  46. data/lib/mno_enterprise/testing_support/mno_enterprise_api_test_helper.rb +47 -16
  47. data/lib/mno_enterprise/testing_support/organizations_shared_helpers.rb +6 -9
  48. data/lib/mno_enterprise/version.rb +1 -1
  49. data/spec/config/initializers/audit_log_spec.rb +5 -0
  50. data/spec/controllers/mno_enterprise/application_controller_spec.rb +4 -4
  51. data/spec/helpers/image_helper_spec.rb +69 -0
  52. data/spec/models/mno_enterprise/ability_spec.rb +5 -0
  53. data/spec/models/mno_enterprise/app_spec.rb +1 -1
  54. data/spec/models/mno_enterprise/base_resource_spec.rb +37 -0
  55. data/spec/models/mno_enterprise/credit_card_spec.rb +18 -0
  56. data/spec/models/mno_enterprise/organization_spec.rb +16 -0
  57. data/spec/models/mno_enterprise/shared_entity_spec.rb +7 -0
  58. data/spec/models/mno_enterprise/user_spec.rb +83 -15
  59. metadata +15 -2
@@ -31,7 +31,7 @@ module MnoEnterprise::TestingSupport::OrganizationsSharedHelpers
31
31
  'email' => user.email,
32
32
  'role' => user.role(organization)
33
33
  }
34
- u.merge!('uid' => user.uid) if admin
34
+ u['uid'] = user.uid if admin
35
35
  list.push(u)
36
36
  end
37
37
 
@@ -53,13 +53,12 @@ module MnoEnterprise::TestingSupport::OrganizationsSharedHelpers
53
53
  'id' => organization.id,
54
54
  'name' => organization.name,
55
55
  'soa_enabled' => organization.soa_enabled,
56
+ 'account_frozen' => organization.account_frozen,
56
57
  'payment_restriction' => organization.payment_restriction
57
58
  }
58
59
 
59
60
  if admin
60
- ret.merge!({
61
- 'uid' => organization.uid
62
- })
61
+ ret['uid'] = organization.uid
63
62
  end
64
63
 
65
64
  ret
@@ -115,9 +114,7 @@ module MnoEnterprise::TestingSupport::OrganizationsSharedHelpers
115
114
  'organization' => partial_hash_for_organization(organization),
116
115
  'current_user' => partial_hash_for_current_user(organization, user)
117
116
  }
118
- hash['organization'].merge!(
119
- 'members' => partial_hash_for_members(organization)
120
- )
117
+ hash['organization']['members'] = partial_hash_for_members(organization)
121
118
 
122
119
  if user.role(organization) == 'Super Admin'
123
120
  hash.merge!(partial_hash_for_billing(organization))
@@ -138,8 +135,8 @@ module MnoEnterprise::TestingSupport::OrganizationsSharedHelpers
138
135
  def admin_hash_for_organization(organization)
139
136
  hash = {}
140
137
  hash['organization'] = partial_hash_for_organization(organization, true)
141
- hash['organization'].merge!('members' => partial_hash_for_members(organization, true))
142
- hash['organization'].merge!('credit_card' => {'presence' => false})
138
+ hash['organization']['members'] = partial_hash_for_members(organization, true)
139
+ hash['organization']['credit_card'] = {'presence' => false}
143
140
  hash['organization'].merge!(admin_partial_hash_for_invoices(organization))
144
141
  hash['organization'].merge!(admin_partial_hash_for_active_apps(organization))
145
142
  hash
@@ -1,3 +1,3 @@
1
1
  module MnoEnterprise
2
- VERSION = '3.2.1'
2
+ VERSION = '3.3.0'
3
3
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ describe 'AUDIT_LOG_CONFIG' do
3
+ # Make sure that the constant is defined
4
+ it { expect(AUDIT_LOG_CONFIG).to be_a Hash }
5
+ end
@@ -13,10 +13,10 @@ module MnoEnterprise
13
13
  end
14
14
 
15
15
  describe '#add_param_to_fragment' do
16
- it { expect(controller.add_param_to_fragment('/#/platform/accounts', 'foo', 'bar')).to eq('/#/platform/accounts?foo=bar') }
17
- it { expect(controller.add_param_to_fragment('/', 'foo', 'bar')).to eq('/#?foo=bar') }
18
- it { expect(controller.add_param_to_fragment('/#/platform/dashboard/he/43?en=690', 'foo', 'bar')).to eq('/#/platform/dashboard/he/43?en=690&foo=bar') }
19
- it { expect(controller.add_param_to_fragment('/#/platform/dashboard/he/43?en=690', 'foo', [{msg: 'yolo'}])).to eq('/#/platform/dashboard/he/43?en=690&foo=%7B%3Amsg%3D%3E%22yolo%22%7D') }
16
+ it { expect(controller.add_param_to_fragment('/#!/platform/accounts', 'foo', 'bar')).to eq('/#!/platform/accounts?foo=bar') }
17
+ it { expect(controller.add_param_to_fragment('/', 'foo', 'bar')).to eq('/#!?foo=bar') }
18
+ it { expect(controller.add_param_to_fragment('/#!/platform/dashboard/he/43?en=690', 'foo', 'bar')).to eq('/#!/platform/dashboard/he/43?en=690&foo=bar') }
19
+ it { expect(controller.add_param_to_fragment('/#!/platform/dashboard/he/43?en=690', 'foo', [{msg: 'yolo'}])).to eq('/#!/platform/dashboard/he/43?en=690&foo=%7B%3Amsg%3D%3E%22yolo%22%7D') }
20
20
  end
21
21
 
22
22
  describe '#after_sign_in_path_for' do
@@ -0,0 +1,69 @@
1
+ require 'rails_helper'
2
+
3
+ module MnoEnterprise
4
+ describe ImageHelper do
5
+
6
+ let(:folder) { "/app/assets/images/mno_enterprise" }
7
+ let(:root) {"#{Rails.root}#{folder}"}
8
+ let(:path_engine_main_logo) { "#{MnoEnterprise::Engine.root}#{folder}/main-logo.png" }
9
+ let(:path_main_logo) { "#{root}/main-logo.png" }
10
+ let(:path_main_logo_white) { "#{root}/main-logo-whitebg.png" }
11
+
12
+ describe "#main_logo_white_bg_path" do
13
+
14
+ context "when no logos exist" do
15
+
16
+ it "returns the engine main-logo filename" do
17
+ expect(helper.main_logo_white_bg_path).to match("mno_enterprise/main-logo.png")
18
+ end
19
+
20
+ it "returns the engine main-logo full path" do
21
+ expect(helper.main_logo_white_bg_path(true)).to match(path_engine_main_logo)
22
+ end
23
+ end
24
+
25
+ context "when main-logo.png exists and main-logo-whitebg.png do not exist" do
26
+ before { allow(File).to receive(:exists?).with(path_main_logo_white).and_return(false) }
27
+ before { allow(File).to receive(:exists?).with(path_main_logo).and_return(true) }
28
+
29
+ it "returns the main-logo filename" do
30
+ expect(helper.main_logo_white_bg_path).to match("mno_enterprise/main-logo.png")
31
+ end
32
+
33
+ it "returns the main-logo full path" do
34
+ expect(helper.main_logo_white_bg_path(true)).to match(path_main_logo)
35
+ end
36
+ end
37
+
38
+ context "when main-logo-whitebg.png exists" do
39
+ before { allow(File).to receive(:exists?).with(path_main_logo_white).and_return(true) }
40
+
41
+ it "returns the filename" do
42
+ expect(helper.main_logo_white_bg_path).to match("mno_enterprise/main-logo-whitebg.png")
43
+ end
44
+
45
+ it "returns the full path" do
46
+ expect(helper.main_logo_white_bg_path(true)).to match(path_main_logo_white)
47
+ end
48
+ end
49
+ end
50
+
51
+ describe "#main_logo_path" do
52
+
53
+ context "when there are no logos" do
54
+
55
+ it "returns the engines main-logo " do
56
+ expect(helper.main_logo_path).to match(path_engine_main_logo)
57
+ end
58
+ end
59
+
60
+ context "when main-logo.png exists" do
61
+ before { allow(File).to receive(:exists?).with(path_main_logo).and_return(true) }
62
+
63
+ it "returns the full path" do
64
+ expect(helper.main_logo_path).to match(path_main_logo)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -15,6 +15,11 @@ RSpec.describe MnoEnterprise::Ability, type: :model do
15
15
  it { is_expected.to be_able_to(:manage_app_instances, organization) }
16
16
  end
17
17
 
18
+ context 'when User#admin_role has a random case' do
19
+ let(:admin_role) { 'ADmIn' }
20
+ it { is_expected.to be_able_to(:manage_app_instances, organization) }
21
+ end
22
+
18
23
  context 'when no User#admin_role' do
19
24
  it { is_expected.not_to be_able_to(:manage_app_instances, organization) }
20
25
  end
@@ -26,7 +26,7 @@ module MnoEnterprise
26
26
  end
27
27
 
28
28
  describe 'appinfo methods' do
29
- %i(single_billing? coming_soon? add_on?).each do |method|
29
+ %i(single_billing? coming_soon? add_on? connec_ready? star_ready? responsive?).each do |method|
30
30
  it { expect(described_class.new).to respond_to(method) }
31
31
  end
32
32
  end
@@ -46,5 +46,42 @@ module MnoEnterprise
46
46
  it { expect(User.new.cache_key).to eq('mno_enterprise/users/new') }
47
47
  end
48
48
  end
49
+
50
+ # Not the best spec as this still pass without the attributes deletion
51
+ describe '#clear_association_cache' do
52
+ let(:user) { build(:user, :with_organizations) }
53
+ let(:dashboard) { build(:impac_dashboard) }
54
+
55
+ # Prime the cache and clear the stubs
56
+ before do
57
+ api_stub_for(get: "/users/#{user.id}/dashboards", response: from_api([dashboard]))
58
+ user.dashboards.count
59
+ user.organizations.count
60
+ clear_api_stubs
61
+ end
62
+
63
+ context 'without clearing the cache' do
64
+ # We can get the widget count without hitting the API
65
+ it 'is cached' do
66
+ # ivar
67
+ expect(user.dashboards.count).to eq(1)
68
+ # attribute
69
+ expect(user.organizations.count).to eq(1)
70
+ end
71
+ end
72
+
73
+ context 'when the cache is cleared' do
74
+ before { user.clear_association_cache }
75
+
76
+ # It tries to hit the API
77
+ it 'clears the resource cache (ivar)' do
78
+ expect{user.dashboards.count}.to raise_error(MnoeFaradayTestAdapter::Stubs::NotFound)
79
+ end
80
+
81
+ it 'clears the resource cache (attributes)' do
82
+ expect{user.organizations.count}.to raise_error(MnoeFaradayTestAdapter::Stubs::NotFound)
83
+ end
84
+ end
85
+ end
49
86
  end
50
87
  end
@@ -0,0 +1,18 @@
1
+ require 'rails_helper'
2
+
3
+ module MnoEnterprise
4
+ RSpec.describe CreditCard, type: :model do
5
+ describe '#expiry_date' do
6
+
7
+ context 'with a valid date' do
8
+ let(:credit_card) { build(:credit_card, year: 2020, month: 5) }
9
+ it { expect(credit_card.expiry_date).to eq(Date.new(2020,5,31)) }
10
+ end
11
+
12
+ context 'without a date' do
13
+ let(:credit_card) { MnoEnterprise::CreditCard.new }
14
+ it { expect(credit_card.expiry_date).to be nil }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -20,5 +20,21 @@ module MnoEnterprise
20
20
  it { is_expected.to eq(['visa']) }
21
21
  end
22
22
  end
23
+
24
+ describe '#has_credit_card_details?' do
25
+ let(:organization) { FactoryGirl.build(:organization) }
26
+ subject { organization.has_credit_card_details? }
27
+
28
+ context 'with a credit card' do
29
+ before { organization.credit_card = FactoryGirl.build(:credit_card) }
30
+ it { is_expected.to be true }
31
+ end
32
+
33
+ context 'without a credit card' do
34
+ # Her return a new object if non existing
35
+ before { organization.credit_card = MnoEnterprise::CreditCard.new }
36
+ it { is_expected.to be false }
37
+ end
38
+ end
23
39
  end
24
40
  end
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+ require 'shoulda/matchers'
3
+
4
+ module MnoEnterprise
5
+ RSpec.describe SharedEntity, type: :model do
6
+ end
7
+ end
@@ -2,6 +2,14 @@ require 'rails_helper'
2
2
 
3
3
  module MnoEnterprise
4
4
  RSpec.describe User, type: :model do
5
+ def reload_user
6
+ # Reload User class to redefine the validation
7
+ # Removes MnoEnterprise::User from object-space:
8
+ MnoEnterprise.send(:remove_const, :User)
9
+ # Reloads the module (require might also work):
10
+ load 'app/models/mno_enterprise/user.rb'
11
+ end
12
+
5
13
  describe 'password strength' do
6
14
  let(:user) do
7
15
  # Initialize this way so the class reload is taken into account (the factory doesnt reload the User class)
@@ -17,12 +25,7 @@ module MnoEnterprise
17
25
  context 'with password regex' do
18
26
  before do
19
27
  Devise.password_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/
20
-
21
- # Reload User class to redefine the validation
22
- # Removes MnoEnterprise::User from object-space:
23
- MnoEnterprise.send(:remove_const, :User)
24
- # Reloads the module (require might also work):
25
- load 'app/models/mno_enterprise/user.rb'
28
+ reload_user
26
29
  end
27
30
 
28
31
  it 'validates the password strength' do
@@ -39,12 +42,18 @@ module MnoEnterprise
39
42
  end
40
43
  end
41
44
 
42
- describe :intercom_user_hash do
43
- let(:user) { MnoEnterprise::User.new(email: 'admin@example.com') }
44
-
45
+ describe 'IntercomUser' do
45
46
  context 'without Intercom' do
46
47
  # default
47
- it { expect(user).not_to respond_to(:intercom_user_hash) }
48
+ let(:user) { MnoEnterprise::User.new(email: 'admin@example.com') }
49
+
50
+ describe :intercom_data do
51
+ it { expect(user).not_to respond_to(:intercom_data) }
52
+ end
53
+
54
+ describe :intercom_user_hash do
55
+ it { expect(user).not_to respond_to(:intercom_user_hash) }
56
+ end
48
57
  end
49
58
 
50
59
  context 'with Intercom' do
@@ -56,16 +65,43 @@ module MnoEnterprise
56
65
  MnoEnterprise.send(:remove_const, :User)
57
66
  load 'app/models/mno_enterprise/user.rb'
58
67
  end
59
-
60
- it 'returns the user intercom hash' do
61
- expect(user.intercom_user_hash).not_to be_nil
62
- end
63
-
64
68
  after do
65
69
  # Reset to default
66
70
  MnoEnterprise.send(:remove_const, :User)
67
71
  load 'app/models/mno_enterprise/user.rb'
68
72
  end
73
+
74
+ let(:user) { MnoEnterprise::User.new(attributes_for(:user, admin_role: 'admin')) }
75
+
76
+ describe :intercom_user_hash do
77
+ it 'returns the user intercom secure hash' do
78
+ expect(user.intercom_user_hash).not_to be_nil
79
+ end
80
+ end
81
+
82
+ describe :intercom_data do
83
+ let(:expected) {
84
+ {
85
+ user_id: user.id,
86
+ name: [user.name, user.surname].join(' '),
87
+ email: user.email,
88
+ created_at: user.created_at.to_i,
89
+ last_seen_ip: user.last_sign_in_ip,
90
+ custom_attributes: {
91
+ first_name: user.name,
92
+ surname: user.surname,
93
+ confirmed_at: user.confirmed_at,
94
+ phone: user.phone,
95
+ admin_role: user.admin_role
96
+ },
97
+ update_last_request_at: true
98
+ }
99
+ }
100
+
101
+ it {
102
+ expect(user.intercom_data).to eq(expected)
103
+ }
104
+ end
69
105
  end
70
106
  end
71
107
 
@@ -278,5 +314,37 @@ module MnoEnterprise
278
314
  end
279
315
  end
280
316
  end
317
+
318
+ describe 'Devise' do
319
+ subject { MnoEnterprise::User.new }
320
+ describe 'registerable?' do
321
+ context 'default' do
322
+ before { reload_user }
323
+ it 'is registerable' do
324
+ expect(MnoEnterprise::User.ancestors).to include(Devise::Models::Registerable)
325
+ end
326
+ end
327
+
328
+ context 'enabled' do
329
+ before do
330
+ Settings.merge!(devise: { registration: { disabled: false } })
331
+ reload_user
332
+ end
333
+ it 'is registerable' do
334
+ expect(MnoEnterprise::User.ancestors).to include(Devise::Models::Registerable)
335
+ end
336
+ end
337
+
338
+ context 'disabled' do
339
+ before do
340
+ Settings.merge!(devise: { registration: { disabled: true } })
341
+ reload_user
342
+ end
343
+ it 'is not registerable' do
344
+ expect(MnoEnterprise::User.ancestors).not_to include(Devise::Models::Registerable)
345
+ end
346
+ end
347
+ end
348
+ end
281
349
  end
282
350
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mno-enterprise-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnaud Lachaume
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-11-09 00:00:00.000000000 Z
12
+ date: 2017-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -328,6 +328,7 @@ files:
328
328
  - app/assets/stylesheets/mno_enterprise/mail.css
329
329
  - app/controllers/mno_enterprise/application_controller.rb
330
330
  - app/helpers/mno_enterprise/application_helper.rb
331
+ - app/helpers/mno_enterprise/image_helper.rb
331
332
  - app/helpers/mno_enterprise/impersonate_helper.rb
332
333
  - app/models/mno_enterprise/ability.rb
333
334
  - app/models/mno_enterprise/app.rb
@@ -352,6 +353,7 @@ files:
352
353
  - app/models/mno_enterprise/invoice.rb
353
354
  - app/models/mno_enterprise/org_invite.rb
354
355
  - app/models/mno_enterprise/organization.rb
356
+ - app/models/mno_enterprise/shared_entity.rb
355
357
  - app/models/mno_enterprise/team.rb
356
358
  - app/models/mno_enterprise/tenant.rb
357
359
  - app/models/mno_enterprise/tenant_invoice.rb
@@ -447,6 +449,7 @@ files:
447
449
  - config/locales/templates/modals/en.yml
448
450
  - config/locales/templates/modals/id.yml
449
451
  - config/locales/templates/modals/zh.yml
452
+ - config/locales/templates/onboarding/en.yml
450
453
  - config/locales/views/auth/confirmations/en.yml
451
454
  - config/locales/views/auth/confirmations/id.yml
452
455
  - config/locales/views/auth/confirmations/zh.yml
@@ -513,6 +516,7 @@ files:
513
516
  - lib/generators/mno_enterprise/install/templates/config/settings/test.yml
514
517
  - lib/generators/mno_enterprise/install/templates/config/settings/uat.yml
515
518
  - lib/generators/mno_enterprise/install/templates/javascripts/mno_enterprise_extensions.js
519
+ - lib/generators/mno_enterprise/install/templates/nginx.conf
516
520
  - lib/generators/mno_enterprise/install/templates/stylesheets/main.less
517
521
  - lib/generators/mno_enterprise/install/templates/stylesheets/theme.less_erb
518
522
  - lib/generators/mno_enterprise/install/templates/stylesheets/variables.less
@@ -557,6 +561,7 @@ files:
557
561
  - lib/mno_enterprise/concerns/models/app_instance.rb
558
562
  - lib/mno_enterprise/concerns/models/intercom_user.rb
559
563
  - lib/mno_enterprise/concerns/models/organization.rb
564
+ - lib/mno_enterprise/concerns/models/shared_entity.rb
560
565
  - lib/mno_enterprise/concerns/models/team.rb
561
566
  - lib/mno_enterprise/core.rb
562
567
  - lib/mno_enterprise/database_extendable.rb
@@ -600,9 +605,11 @@ files:
600
605
  - lib/mno_enterprise/testing_support/user_action_shared.rb
601
606
  - lib/mno_enterprise/version.rb
602
607
  - lib/tasks/mno_enterprise_tasks.rake
608
+ - spec/config/initializers/audit_log_spec.rb
603
609
  - spec/controllers/mno_enterprise/angular_csrf_spec.rb
604
610
  - spec/controllers/mno_enterprise/application_controller_spec.rb
605
611
  - spec/controllers/mno_enterprise/i18n_spec.rb
612
+ - spec/helpers/image_helper_spec.rb
606
613
  - spec/lib/devise/model/remote_authenticable_spec.rb
607
614
  - spec/lib/her_extension/her_orm_adapter.rb
608
615
  - spec/lib/her_extension/model/relation_spec.rb
@@ -620,11 +627,13 @@ files:
620
627
  - spec/models/mno_enterprise/app_instance_spec.rb
621
628
  - spec/models/mno_enterprise/app_spec.rb
622
629
  - spec/models/mno_enterprise/base_resource_spec.rb
630
+ - spec/models/mno_enterprise/credit_card_spec.rb
623
631
  - spec/models/mno_enterprise/deletion_request_spec.rb
624
632
  - spec/models/mno_enterprise/identity_spec.rb
625
633
  - spec/models/mno_enterprise/impac/dashboard_spec.rb
626
634
  - spec/models/mno_enterprise/invoice_spec.rb
627
635
  - spec/models/mno_enterprise/organization_spec.rb
636
+ - spec/models/mno_enterprise/shared_entity_spec.rb
628
637
  - spec/models/mno_enterprise/user_spec.rb
629
638
  - spec/rails_helper.rb
630
639
  - spec/spec_helper.rb
@@ -657,10 +666,12 @@ test_files:
657
666
  - spec/models/mno_enterprise/organization_spec.rb
658
667
  - spec/models/mno_enterprise/app_instance_spec.rb
659
668
  - spec/models/mno_enterprise/impac/dashboard_spec.rb
669
+ - spec/models/mno_enterprise/credit_card_spec.rb
660
670
  - spec/models/mno_enterprise/deletion_request_spec.rb
661
671
  - spec/models/mno_enterprise/identity_spec.rb
662
672
  - spec/models/mno_enterprise/ability_spec.rb
663
673
  - spec/models/mno_enterprise/invoice_spec.rb
674
+ - spec/models/mno_enterprise/shared_entity_spec.rb
664
675
  - spec/models/mno_enterprise/user_spec.rb
665
676
  - spec/models/mno_enterprise/base_resource_spec.rb
666
677
  - spec/spec_helper.rb
@@ -680,4 +691,6 @@ test_files:
680
691
  - spec/controllers/mno_enterprise/i18n_spec.rb
681
692
  - spec/controllers/mno_enterprise/angular_csrf_spec.rb
682
693
  - spec/controllers/mno_enterprise/application_controller_spec.rb
694
+ - spec/config/initializers/audit_log_spec.rb
683
695
  - spec/mno_enterprise_spec.rb
696
+ - spec/helpers/image_helper_spec.rb