mno-enterprise-core 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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