foreman_rh_cloud 1.0.4.1 → 1.0.6

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/foreman_inventory_upload/accounts_controller.rb +1 -0
  3. data/app/controllers/foreman_inventory_upload/uploads_controller.rb +14 -7
  4. data/app/models/setting/rh_cloud.rb +13 -0
  5. data/config/routes.rb +1 -0
  6. data/lib/foreman_inventory_upload.rb +12 -0
  7. data/lib/foreman_inventory_upload/async/async_helpers.rb +13 -0
  8. data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +8 -0
  9. data/lib/foreman_inventory_upload/async/shell_process.rb +3 -1
  10. data/lib/foreman_inventory_upload/generators/archived_report.rb +6 -3
  11. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +13 -0
  12. data/lib/foreman_inventory_upload/generators/queries.rb +2 -0
  13. data/lib/foreman_inventory_upload/generators/slice.rb +30 -10
  14. data/lib/foreman_rh_cloud/engine.rb +4 -0
  15. data/lib/foreman_rh_cloud/version.rb +1 -1
  16. data/test/controllers/accounts_controller_test.rb +8 -3
  17. data/test/controllers/uploads_controller_test.rb +13 -0
  18. data/test/unit/archived_report_generator_test.rb +1 -0
  19. data/test/unit/fact_helpers_test.rb +29 -0
  20. data/test/unit/slice_generator_test.rb +109 -12
  21. data/test/unit/slice_generator_test.rb.orig +280 -0
  22. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +2 -0
  23. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListActions.js +2 -1
  24. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListReducer.js +8 -0
  25. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListSelectors.js +2 -0
  26. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListReducer.test.js +11 -0
  27. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListSelectors.test.js +9 -1
  28. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +10 -0
  29. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListSelectors.test.js.snap +5 -2
  30. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.fixtures.js +1 -0
  31. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.js +32 -0
  32. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherActions.js +27 -0
  33. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherConstants.js +2 -0
  34. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcher.test.js +14 -0
  35. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcherActions.test.js +14 -0
  36. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcher.test.js.snap +38 -0
  37. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcherActions.test.js.snap +14 -0
  38. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/autoUploadSwitcher.scss +3 -0
  39. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/index.js +17 -0
  40. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardIntegration.test.js +2 -1
  41. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.js +21 -0
  42. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/PageHeader.test.js +13 -0
  43. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap +33 -0
  44. data/webpack/ForemanInventoryUpload/Components/PageHeader/index.js +1 -0
  45. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.fixtures.js +1 -0
  46. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.js +4 -2
  47. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/__tests__/ScheduledRun.test.js +0 -1
  48. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/__tests__/__snapshots__/ScheduledRun.test.js.snap +0 -2
  49. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/index.js +12 -1
  50. data/webpack/ForemanInventoryUpload/Components/TabBody/__tests__/__snapshots__/TabBody.test.js.snap +1 -1
  51. data/webpack/ForemanInventoryUpload/ForemanInventoryUpload.js +5 -4
  52. data/webpack/ForemanInventoryUpload/__snapshots__/ForemanInventoryUpload.test.js.snap +6 -5
  53. metadata +22 -2
@@ -0,0 +1,280 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ReportGeneratorTest < ActiveSupport::TestCase
4
+ setup do
5
+ User.current = User.find_by(login: 'secret_admin')
6
+
7
+ env = FactoryBot.create(:katello_k_t_environment)
8
+ cv = env.content_views << FactoryBot.create(:katello_content_view, organization: env.organization)
9
+
10
+ @host = FactoryBot.create(
11
+ :host,
12
+ :with_subscription,
13
+ :with_content,
14
+ content_view: cv.first,
15
+ lifecycle_environment: env,
16
+ organization: env.organization
17
+ )
18
+
19
+ @host.organization.pools << FactoryBot.create(:katello_pool, account_number: '1234', cp_id: 1)
20
+
21
+ ForemanInventoryUpload::Generators::Queries.instance_variable_set(:@fact_names, nil)
22
+ end
23
+
24
+ def interesting_facts
25
+ [
26
+ 'dmi::system::uuid',
27
+ 'virt::uuid',
28
+ 'cpu::cpu(s)',
29
+ 'cpu::cpu_socket(s)',
30
+ 'cpu::core(s)_per_socket',
31
+ 'memory::memtotal',
32
+ 'dmi::bios::vendor',
33
+ 'dmi::bios::version',
34
+ 'dmi::bios::relase_date',
35
+ 'uname::release',
36
+ 'lscpu::flags',
37
+ 'distribution::name',
38
+ 'distribution::version',
39
+ 'distribution::id',
40
+ 'virt::is_guest',
41
+ ]
42
+ end
43
+
44
+ def fact_names
45
+ @fact_names ||= Hash[
46
+ interesting_facts.map do |fact|
47
+ [fact, FactoryBot.create(:fact_name, name: fact, type: 'Katello::RhsmFactName')]
48
+ end
49
+ ]
50
+ end
51
+
52
+ test 'generates a report for a single host' do
53
+ batch = Host.where(id: @host.id).in_batches.first
54
+ generator = create_generator(batch)
55
+
56
+ json_str = generator.render
57
+ actual = JSON.parse(json_str.join("\n"))
58
+
59
+ assert_equal 'slice_123', actual['report_slice_id']
60
+ assert_not_nil(actual_host = actual['hosts'].first)
61
+ assert_equal @host.name, actual_host['display_name']
62
+ assert_equal @host.fqdn, actual_host['fqdn']
63
+ assert_equal '1234', actual_host['account']
64
+ assert_equal 1, generator.hosts_count
65
+ end
66
+
67
+ test 'generates a report with satellite facts' do
68
+ Foreman.expects(:instance_id).twice.returns('satellite-id')
69
+ batch = Host.where(id: @host.id).in_batches.first
70
+ generator = create_generator(batch)
71
+
72
+ json_str = generator.render
73
+ actual = JSON.parse(json_str.join("\n"))
74
+
75
+ facts = actual['hosts'].first['facts'].first
76
+ assert_equal 'satellite', facts['namespace']
77
+ satellite_facts = facts['facts']
78
+ assert_equal 'satellite-id', satellite_facts['satellite_instance_id']
79
+ assert_equal @host.organization_id, satellite_facts['organization_id']
80
+
81
+ instance_id_tag = actual['hosts'].first['tags'].find { |tag| tag['namespace'] == 'satellite' && tag['key'] == 'satellite_instance_id' }
82
+ assert_not_nil instance_id_tag
83
+ assert_equal 'satellite-id', instance_id_tag['value']
84
+
85
+ org_id_tag = actual['hosts'].first['tags'].find { |tag| tag['namespace'] == 'satellite' && tag['key'] == 'organization_id' }
86
+ assert_not_nil org_id_tag
87
+ assert_equal @host.organization_id.to_s, org_id_tag['value']
88
+
89
+ version = satellite_facts['satellite_version']
90
+ if defined?(ForemanThemeSatellite)
91
+ assert_equal ForemanThemeSatellite::SATELLITE_VERSION, version
92
+ else
93
+ assert_nil version
94
+ end
95
+ end
96
+
97
+ test 'generates a report for a host with hypervisor' do
98
+ hypervisor_host = FactoryBot.create(
99
+ :host,
100
+ :with_subscription,
101
+ :with_content,
102
+ content_view: @host.content_view,
103
+ lifecycle_environment: @host.lifecycle_environment,
104
+ organization: @host.organization
105
+ )
106
+
107
+ @host.subscription_facet.hypervisor_host = hypervisor_host
108
+ @host.save!
109
+
110
+ batch = Host.where(id: @host.id).in_batches.first
111
+ generator = create_generator(batch)
112
+
113
+ json_str = generator.render
114
+ actual = JSON.parse(json_str.join("\n"))
115
+
116
+ assert_equal 'slice_123', actual['report_slice_id']
117
+ assert_not_nil(actual_host = actual['hosts'].first)
118
+ assert_equal @host.name, actual_host['display_name']
119
+ assert_equal @host.fqdn, actual_host['fqdn']
120
+ assert_not_nil(host_facts = actual_host['facts']&.first)
121
+ assert_equal 'satellite', host_facts['namespace']
122
+ assert_not_nil(fact_values = host_facts['facts'])
123
+ assert_equal hypervisor_host.name, fact_values['virtual_host_name']
124
+ assert_equal hypervisor_host.subscription_facet.uuid, fact_values['virtual_host_uuid']
125
+ end
126
+
127
+ test 'generates a report with system purpose' do
128
+ @host.subscription_facet.purpose_usage = 'test_usage'
129
+ @host.subscription_facet.purpose_role = 'test_role'
130
+ @host.subscription_facet.save!
131
+
132
+ batch = Host.where(id: @host.id).in_batches.first
133
+ generator = create_generator(batch)
134
+
135
+ json_str = generator.render
136
+ actual = JSON.parse(json_str.join("\n"))
137
+
138
+ assert_equal 'slice_123', actual['report_slice_id']
139
+ assert_not_nil(actual_host = actual['hosts'].first)
140
+ assert_equal @host.name, actual_host['display_name']
141
+ assert_equal @host.fqdn, actual_host['fqdn']
142
+ assert_not_nil(host_facts = actual_host['facts']&.first)
143
+ assert_equal 'satellite', host_facts['namespace']
144
+ assert_not_nil(fact_values = host_facts['facts'])
145
+ assert_equal 'test_usage', fact_values['system_purpose_usage']
146
+ assert_equal 'test_role', fact_values['system_purpose_role']
147
+ end
148
+
149
+ test 'generates a report for a golden ticket' do
150
+ batch = Host.where(id: @host.id).in_batches.first
151
+ generator = create_generator(batch) do |generator|
152
+ generator.stubs(:golden_ticket?).returns(true)
153
+ end
154
+
155
+ json_str = generator.render
156
+ actual = JSON.parse(json_str.join("\n"))
157
+
158
+ assert_equal 'slice_123', actual['report_slice_id']
159
+ assert_not_nil(actual_host = actual['hosts'].first)
160
+ assert_equal @host.name, actual_host['display_name']
161
+ assert_equal @host.fqdn, actual_host['fqdn']
162
+ assert_equal '1234', actual_host['account']
163
+ assert_equal 1, generator.hosts_count
164
+ end
165
+
166
+ test 'skips hosts without subscription' do
167
+ a_host = FactoryBot.create(
168
+ :host,
169
+ organization: @host.organization
170
+ )
171
+
172
+ # make a_host last
173
+ batch = Host.where(id: [@host.id, a_host.id]).order(:name).in_batches.first
174
+ generator = create_generator(batch)
175
+
176
+ json_str = generator.render
177
+ actual = JSON.parse(json_str.join("\n"))
178
+
179
+ assert_equal 'slice_123', actual['report_slice_id']
180
+ assert_not_nil(actual_host = actual['hosts'].first)
181
+ assert_equal @host.name, actual_host['display_name']
182
+ assert_equal @host.fqdn, actual_host['fqdn']
183
+ assert_equal '1234', actual_host['account']
184
+ assert_equal 1, generator.hosts_count
185
+ end
186
+
187
+ test 'shows system_memory_bytes in bytes' do
188
+ FactoryBot.create(:fact_value, fact_name: fact_names['memory::memtotal'], value: '1', host: @host)
189
+
190
+ batch = Host.where(id: @host.id).in_batches.first
191
+ generator = create_generator(batch)
192
+
193
+ json_str = generator.render
194
+ actual = JSON.parse(json_str.join("\n"))
195
+
196
+ assert_equal 'slice_123', actual['report_slice_id']
197
+ assert_not_nil(actual_host = actual['hosts'].first)
198
+ assert_not_nil(actual_profile = actual_host['system_profile'])
199
+ assert_equal 1024, actual_profile['system_memory_bytes']
200
+ end
201
+
202
+ test 'reports an account for hosts with multiple pools' do
203
+ first_pool = @host.organization.pools.first
204
+ second_pool = FactoryBot.create(:katello_pool, account_number: nil, cp_id: 2)
205
+ new_org = FactoryBot.create(:organization, pools: [first_pool, second_pool])
206
+ @host.organization = new_org
207
+ @host.save!
208
+
209
+ batch = Host.where(id: @host.id).in_batches.first
210
+ generator = create_generator(batch)
211
+
212
+ json_str = generator.render
213
+ actual = JSON.parse(json_str.join("\n"))
214
+
215
+ assert_equal 'slice_123', actual['report_slice_id']
216
+ assert_not_nil(actual_host = actual['hosts'].first)
217
+ assert_not_nil(actual_host['account'])
218
+ assert_not_empty(actual_host['account'])
219
+ end
220
+
221
+ test 'Generates os_release with version and id' do
222
+ FactoryBot.create(:fact_value, fact_name: fact_names['distribution::name'], value: 'Red Hat Test Linux', host: @host)
223
+ FactoryBot.create(:fact_value, fact_name: fact_names['distribution::version'], value: '7.1', host: @host)
224
+ FactoryBot.create(:fact_value, fact_name: fact_names['distribution::id'], value: 'TestId', host: @host)
225
+
226
+ batch = Host.where(id: @host.id).in_batches.first
227
+ generator = create_generator(batch)
228
+
229
+ json_str = generator.render
230
+ actual = JSON.parse(json_str.join("\n"))
231
+
232
+ assert_equal 'slice_123', actual['report_slice_id']
233
+ assert_not_nil(actual_host = actual['hosts'].first)
234
+ assert_not_nil(actual_profile = actual_host['system_profile'])
235
+ assert_equal 'Red Hat Test Linux 7.1 (TestId)', actual_profile['os_release']
236
+ end
237
+
238
+ <<<<<<< HEAD
239
+ test 'sets infrastructure_type to "virtual" based on virt.is_guest fact' do
240
+ FactoryBot.create(:fact_value, fact_name: fact_names['virt::is_guest'], value: true, host: @host)
241
+
242
+ batch = Host.where(id: @host.id).in_batches.first
243
+ generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], 'slice_123')
244
+
245
+ json_str = generator.render
246
+ actual = JSON.parse(json_str.join("\n"))
247
+
248
+ assert_equal 'slice_123', actual['report_slice_id']
249
+ assert_not_nil(actual_host = actual['hosts'].first)
250
+ assert_not_nil(actual_profile = actual_host['system_profile'])
251
+ assert_equal 'virtual', actual_profile['infrastructure_type']
252
+ end
253
+
254
+ test 'sets infrastructure_type to "physical" based on virt.is_guest fact' do
255
+ FactoryBot.create(:fact_value, fact_name: fact_names['virt::is_guest'], value: false, host: @host)
256
+
257
+ batch = Host.where(id: @host.id).in_batches.first
258
+ generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], 'slice_123')
259
+
260
+ json_str = generator.render
261
+ actual = JSON.parse(json_str.join("\n"))
262
+
263
+ assert_equal 'slice_123', actual['report_slice_id']
264
+ assert_not_nil(actual_host = actual['hosts'].first)
265
+ assert_not_nil(actual_profile = actual_host['system_profile'])
266
+ assert_equal 'physical', actual_profile['infrastructure_type']
267
+ =======
268
+ private
269
+
270
+ def create_generator(batch, name = 'slice_123')
271
+ generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], name)
272
+ if block_given?
273
+ yield(generator)
274
+ else
275
+ generator.stubs(:golden_ticket?).returns(false)
276
+ end
277
+ generator
278
+ >>>>>>> Add support fo golden ticket
279
+ end
280
+ end
@@ -28,6 +28,8 @@ export const accountID = 'user@redhat.com';
28
28
 
29
29
  export const processStatusName = 'upload_report_status';
30
30
 
31
+ export const autoUploadEnabled = true;
32
+
31
33
  export const props = {
32
34
  accounts,
33
35
  fetchAccountsStatus: noop,
@@ -10,12 +10,13 @@ import {
10
10
  export const fetchAccountsStatus = () => async dispatch => {
11
11
  try {
12
12
  const {
13
- data: { accounts },
13
+ data: { accounts, autoUploadEnabled },
14
14
  } = await API.get('accounts');
15
15
  dispatch({
16
16
  type: INVENTORY_ACCOUNT_STATUS_POLLING,
17
17
  payload: {
18
18
  accounts,
19
+ autoUploadEnabled,
19
20
  },
20
21
  });
21
22
  } catch (error) {
@@ -5,6 +5,7 @@ import {
5
5
  INVENTORY_ACCOUNT_STATUS_POLLING_START,
6
6
  INVENTORY_PROCESS_RESTART,
7
7
  } from './AccountListConstants';
8
+ import { AUTO_UPLOAD_TOGGLE } from '../AutoUploadSwitcher/AutoUploadSwitcherConstants';
8
9
 
9
10
  const initialState = Immutable({
10
11
  accounts: {},
@@ -20,6 +21,7 @@ export default (state = initialState, action) => {
20
21
  accounts,
21
22
  accountID,
22
23
  processStatusName,
24
+ autoUploadEnabled,
23
25
  } = {},
24
26
  } = action;
25
27
 
@@ -28,6 +30,7 @@ export default (state = initialState, action) => {
28
30
  return state.merge({
29
31
  ...state,
30
32
  accounts,
33
+ autoUploadEnabled,
31
34
  error: null,
32
35
  });
33
36
  case INVENTORY_ACCOUNT_STATUS_POLLING_ERROR:
@@ -49,6 +52,11 @@ export default (state = initialState, action) => {
49
52
  [processStatusName]: 'Restarting...',
50
53
  },
51
54
  });
55
+ case AUTO_UPLOAD_TOGGLE:
56
+ return state.merge({
57
+ ...state,
58
+ autoUploadEnabled,
59
+ });
52
60
  default:
53
61
  return state;
54
62
  }
@@ -6,3 +6,5 @@ export const selectAccounts = state => selectAccountsList(state).accounts;
6
6
  export const selectPollingProcessID = state =>
7
7
  selectAccountsList(state).pollingProcessID;
8
8
  export const selectError = state => selectAccountsList(state).error;
9
+ export const selectAutoUploadEnabled = state =>
10
+ selectAccountsList(state).autoUploadEnabled;
@@ -14,7 +14,9 @@ import {
14
14
  pollingProcessID,
15
15
  accountID,
16
16
  processStatusName,
17
+ autoUploadEnabled,
17
18
  } from '../AccountList.fixtures';
19
+ import { AUTO_UPLOAD_TOGGLE } from '../../AutoUploadSwitcher/AutoUploadSwitcherConstants';
18
20
 
19
21
  const fixtures = {
20
22
  'should return the initial state': {},
@@ -23,6 +25,7 @@ const fixtures = {
23
25
  type: INVENTORY_ACCOUNT_STATUS_POLLING,
24
26
  payload: {
25
27
  accounts,
28
+ autoUploadEnabled,
26
29
  },
27
30
  },
28
31
  },
@@ -54,6 +57,14 @@ const fixtures = {
54
57
  },
55
58
  },
56
59
  },
60
+ 'should handle AUTO_UPLOAD_TOGGLE': {
61
+ action: {
62
+ type: AUTO_UPLOAD_TOGGLE,
63
+ payload: {
64
+ autoUploadEnabled,
65
+ },
66
+ },
67
+ },
57
68
  };
58
69
 
59
70
  describe('AccountList reducer', () =>
@@ -3,14 +3,20 @@ import {
3
3
  selectAccountsList,
4
4
  selectAccounts,
5
5
  selectPollingProcessID,
6
+ selectAutoUploadEnabled,
6
7
  } from '../AccountListSelectors';
7
- import { pollingProcessID, accounts } from '../AccountList.fixtures';
8
+ import {
9
+ pollingProcessID,
10
+ accounts,
11
+ autoUploadEnabled,
12
+ } from '../AccountList.fixtures';
8
13
 
9
14
  const state = {
10
15
  ForemanInventoryUpload: {
11
16
  accountsList: {
12
17
  accounts,
13
18
  pollingProcessID,
19
+ autoUploadEnabled,
14
20
  },
15
21
  },
16
22
  };
@@ -20,6 +26,8 @@ const fixtures = {
20
26
  'should return AccountList accounts': () => selectAccounts(state),
21
27
  'should return AccountList pollingProcessID': () =>
22
28
  selectPollingProcessID(state),
29
+ 'should return AccountList autoUploadEnabled': () =>
30
+ selectAutoUploadEnabled(state),
23
31
  };
24
32
 
25
33
  describe('AccountList selectors', () =>
@@ -1,5 +1,14 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
+ exports[`AccountList reducer should handle AUTO_UPLOAD_TOGGLE 1`] = `
4
+ Object {
5
+ "accounts": Object {},
6
+ "autoUploadEnabled": true,
7
+ "error": null,
8
+ "pollingProcessID": 0,
9
+ }
10
+ `;
11
+
3
12
  exports[`AccountList reducer should handle INVENTORY_ACCOUNT_STATUS_POLLING 1`] = `
4
13
  Object {
5
14
  "accounts": Object {
@@ -19,6 +28,7 @@ Object {
19
28
  "upload_report_status": "success",
20
29
  },
21
30
  },
31
+ "autoUploadEnabled": true,
22
32
  "error": null,
23
33
  "pollingProcessID": 0,
24
34
  }
@@ -1,7 +1,5 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`AccountList selectors should return AccountList pollingProcessID 1`] = `0`;
4
-
5
3
  exports[`AccountList selectors should return AccountList accounts 1`] = `
6
4
  Object {
7
5
  "Account1": Object {
@@ -22,6 +20,10 @@ Object {
22
20
  }
23
21
  `;
24
22
 
23
+ exports[`AccountList selectors should return AccountList autoUploadEnabled 1`] = `true`;
24
+
25
+ exports[`AccountList selectors should return AccountList pollingProcessID 1`] = `0`;
26
+
25
27
  exports[`AccountList selectors should return AccountsList 1`] = `
26
28
  Object {
27
29
  "accounts": Object {
@@ -41,6 +43,7 @@ Object {
41
43
  "upload_report_status": "success",
42
44
  },
43
45
  },
46
+ "autoUploadEnabled": true,
44
47
  "pollingProcessID": 0,
45
48
  }
46
49
  `;