@davra/ui-core 1.0.0-alpha.2 → 1.0.0-alpha.3
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.
- package/package.json +1 -2
- package/src/assets/fonts/myfont.woff +0 -0
- package/src/assets/main.scss +0 -17
- package/src/auto-imports.d.ts +0 -200
- package/src/components/ComponentA.vue +0 -13
- package/src/components/ComponentB.vue +0 -26
- package/src/components/index.ts +0 -7
- package/src/constants/MyConstants.ts +0 -1
- package/src/constants/index.ts +0 -5
- package/src/env.d.ts +0 -8
- package/src/index.ts +0 -23
- package/src/services/davraApi.ts +0 -18
- package/src/services/devicesCountersService.test.ts +0 -209
- package/src/services/devicesCountersService.ts +0 -117
- package/src/services/devicesService.test.ts +0 -207
- package/src/services/devicesService.ts +0 -110
- package/src/services/index.ts +0 -22
- package/src/services/labelsService.test.ts +0 -124
- package/src/services/labelsService.ts +0 -71
- package/src/services/metricsCountersService.test.ts +0 -44
- package/src/services/metricsCountersService.ts +0 -24
- package/src/services/metricsService.test.ts +0 -97
- package/src/services/metricsService.ts +0 -54
- package/src/services/timeseriesService.test.ts +0 -86
- package/src/services/timeseriesService.ts +0 -24
- package/src/services/twinTypesService.test.ts +0 -74
- package/src/services/twinTypesService.ts +0 -24
- package/src/services/twinsCountersService.test.ts +0 -72
- package/src/services/twinsCountersService.ts +0 -40
- package/src/services/twinsService.test.ts +0 -228
- package/src/services/twinsService.ts +0 -137
- package/src/services/userSessionService.test.ts +0 -74
- package/src/services/userSessionService.ts +0 -82
- package/src/stores/alertMessages.test.ts +0 -27
- package/src/stores/alertMessages.ts +0 -26
- package/src/stores/devices.test.ts +0 -149
- package/src/stores/devices.ts +0 -78
- package/src/stores/index.ts +0 -12
- package/src/stores/labels.test.ts +0 -72
- package/src/stores/labels.ts +0 -39
- package/src/stores/metrics.test.ts +0 -116
- package/src/stores/metrics.ts +0 -71
- package/src/stores/twinTypes.test.ts +0 -71
- package/src/stores/twinTypes.ts +0 -36
- package/src/stores/twins.test.ts +0 -148
- package/src/stores/twins.ts +0 -78
- package/src/stores/userSession.test.ts +0 -107
- package/src/stores/userSession.ts +0 -57
- package/src/types.ts +0 -173
- package/src/utils/MyUtil.ts +0 -7
- package/src/utils/index.ts +0 -5
@@ -1,117 +0,0 @@
|
|
1
|
-
import { DavraApiClient} from './davraApi'
|
2
|
-
import type { DeviceCounter, DeviceCounterMetric } from '~/types'
|
3
|
-
|
4
|
-
const getDevicesCountersMetric = async (filters?: string): Promise< DeviceCounterMetric[] > => {
|
5
|
-
const params = []
|
6
|
-
|
7
|
-
if (filters)
|
8
|
-
params.push(filters)
|
9
|
-
|
10
|
-
try {
|
11
|
-
const { data } = await DavraApiClient().get<any>(
|
12
|
-
`/api/v1/iotdata/devices/counters/metrics?${params.join('&')}`,
|
13
|
-
{
|
14
|
-
headers: {
|
15
|
-
Accept: 'application/json',
|
16
|
-
},
|
17
|
-
},
|
18
|
-
|
19
|
-
)
|
20
|
-
return data
|
21
|
-
}
|
22
|
-
catch (error) {
|
23
|
-
throw new Error('Devices Counters API Error')
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
const getDevicesCountersMetricByUUIDs = async (uuids: string[]): Promise< DeviceCounterMetric[]> => {
|
28
|
-
try {
|
29
|
-
const { data } = await DavraApiClient().get<any>(
|
30
|
-
`/api/v1/iotdata/devices/counters/metrics?arrayUUIDs=${uuids.join(',')}`,
|
31
|
-
{
|
32
|
-
headers: {
|
33
|
-
Accept: 'application/json',
|
34
|
-
},
|
35
|
-
},
|
36
|
-
)
|
37
|
-
return data
|
38
|
-
}
|
39
|
-
catch (error) {
|
40
|
-
throw new Error('Devices Counters API Error')
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
const getDevicesCountersMetricByUUID = async (uuid: string): Promise< DeviceCounterMetric[]> => {
|
45
|
-
try {
|
46
|
-
const { data } = await DavraApiClient().get<any>(
|
47
|
-
`/api/v1/iotdata/devices/counters/metrics/${uuid}`,
|
48
|
-
{
|
49
|
-
headers: {
|
50
|
-
Accept: 'application/json',
|
51
|
-
},
|
52
|
-
},
|
53
|
-
)
|
54
|
-
return data
|
55
|
-
}
|
56
|
-
catch (error) {
|
57
|
-
throw new Error('Devices Counters API Error')
|
58
|
-
}
|
59
|
-
}
|
60
|
-
const getDevicesCountersByUUID = async (uuid: string): Promise< DeviceCounter[]> => {
|
61
|
-
try {
|
62
|
-
const { data } = await DavraApiClient().get<any>(
|
63
|
-
`/api/v1/iotdata/devices/counters/${uuid}`,
|
64
|
-
{
|
65
|
-
headers: {
|
66
|
-
Accept: 'application/json',
|
67
|
-
},
|
68
|
-
},
|
69
|
-
)
|
70
|
-
return data
|
71
|
-
}
|
72
|
-
catch (error) {
|
73
|
-
throw new Error('Devices Counters API Error')
|
74
|
-
}
|
75
|
-
}
|
76
|
-
const getDevicesCountersLatestByUUID = async (uuid: string): Promise< any > => {
|
77
|
-
try {
|
78
|
-
const { data } = await DavraApiClient().get<any>(
|
79
|
-
`/api/v1/iotdata/devices/counters/latest/${uuid}`,
|
80
|
-
{
|
81
|
-
headers: {
|
82
|
-
Accept: 'application/json',
|
83
|
-
},
|
84
|
-
},
|
85
|
-
)
|
86
|
-
return data[0]
|
87
|
-
}
|
88
|
-
catch (error) {
|
89
|
-
throw new Error('Devices Counters API Error')
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
const getDevicesCountersLatestByUUIDs = async (uuids: string[]): Promise< any []> => {
|
94
|
-
try {
|
95
|
-
const { data } = await DavraApiClient().get<any>(
|
96
|
-
`/api/v1/iotdata/devices/counters/latest?arrayUUIDs=${uuids.join(',')}`,
|
97
|
-
{
|
98
|
-
headers: {
|
99
|
-
Accept: 'application/json',
|
100
|
-
},
|
101
|
-
},
|
102
|
-
)
|
103
|
-
return data
|
104
|
-
}
|
105
|
-
catch (error) {
|
106
|
-
throw new Error('Devices Counters API Error')
|
107
|
-
}
|
108
|
-
}
|
109
|
-
|
110
|
-
export default {
|
111
|
-
getDevicesCountersMetric,
|
112
|
-
getDevicesCountersMetricByUUID,
|
113
|
-
getDevicesCountersMetricByUUIDs,
|
114
|
-
getDevicesCountersByUUID,
|
115
|
-
getDevicesCountersLatestByUUID,
|
116
|
-
getDevicesCountersLatestByUUIDs,
|
117
|
-
}
|
@@ -1,207 +0,0 @@
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
2
|
-
import DeviceService from '~/services/devicesService'
|
3
|
-
import type { Device } from '~/types'
|
4
|
-
const mockGet = vi.fn()
|
5
|
-
const mockPost = vi.fn()
|
6
|
-
|
7
|
-
describe('Devices Service', () => {
|
8
|
-
describe('getDevices', () => {
|
9
|
-
const mockDevices: Device[] = [
|
10
|
-
{ id: '1', name: 'Device 1' },
|
11
|
-
{ id: '2', name: 'Device 2' },
|
12
|
-
{ id: '3', name: 'Device 3' },
|
13
|
-
] as any
|
14
|
-
beforeEach(() => {
|
15
|
-
vi.mock('./davraApi', () => {
|
16
|
-
return {
|
17
|
-
default: vi.fn(() => ({
|
18
|
-
get: mockGet,
|
19
|
-
post: mockPost,
|
20
|
-
})),
|
21
|
-
}
|
22
|
-
})
|
23
|
-
})
|
24
|
-
afterEach(() => {
|
25
|
-
vi.restoreAllMocks()
|
26
|
-
})
|
27
|
-
|
28
|
-
it('should return devices with default params', async () => {
|
29
|
-
// Arrange
|
30
|
-
const expectedUrl = '/api/v1/devices?start=0'
|
31
|
-
const expectedHeaders = { Accept: 'application/json' }
|
32
|
-
const mockResponse = { data: { totalRecords: mockDevices.length, records: mockDevices } }
|
33
|
-
const start = undefined
|
34
|
-
const limit = undefined
|
35
|
-
const sort = undefined
|
36
|
-
const filters = undefined
|
37
|
-
mockGet.mockResolvedValueOnce(mockResponse)
|
38
|
-
|
39
|
-
// Act
|
40
|
-
const result = await DeviceService.getDevices(start, limit, sort, filters)
|
41
|
-
|
42
|
-
// Assert
|
43
|
-
expect(mockGet).toHaveBeenCalledTimes(1)
|
44
|
-
expect(mockGet).toHaveBeenCalledWith(expectedUrl, { headers: expectedHeaders })
|
45
|
-
expect(result.totalRecords).toEqual(mockDevices.length)
|
46
|
-
expect(result.records).toEqual(mockDevices)
|
47
|
-
})
|
48
|
-
|
49
|
-
it('should return devices with custom params', async () => {
|
50
|
-
// Arrange
|
51
|
-
const expectedUrl = '/api/v1/devices?start=10&limit=20&sort=name&filter=type:camera'
|
52
|
-
const expectedHeaders = { Accept: 'application/json' }
|
53
|
-
const mockResponse = { data: { totalRecords: mockDevices.length, records: mockDevices } }
|
54
|
-
const start = 10
|
55
|
-
const limit = 20
|
56
|
-
const sort = 'name'
|
57
|
-
const filters = 'filter=type:camera'
|
58
|
-
mockGet.mockResolvedValueOnce(mockResponse)
|
59
|
-
|
60
|
-
// Act
|
61
|
-
const result = await DeviceService.getDevices(start, limit, sort, filters)
|
62
|
-
|
63
|
-
// Assert
|
64
|
-
expect(mockGet).toHaveBeenCalledTimes(1)
|
65
|
-
expect(mockGet).toHaveBeenCalledWith(expectedUrl, { headers: expectedHeaders })
|
66
|
-
expect(result.totalRecords).toEqual(mockDevices.length)
|
67
|
-
expect(result.records).toEqual(mockDevices)
|
68
|
-
})
|
69
|
-
|
70
|
-
it('should throw an error if the API call fails', async () => {
|
71
|
-
// Arrange
|
72
|
-
const expectedError = new Error('Devices API Error')
|
73
|
-
const start = undefined
|
74
|
-
const limit = undefined
|
75
|
-
const sort = undefined
|
76
|
-
const filters = undefined
|
77
|
-
mockGet.mockRejectedValueOnce(expectedError)
|
78
|
-
|
79
|
-
// Act + Assert
|
80
|
-
await expect(DeviceService.getDevices(start, limit, sort, filters)).rejects.toThrow(expectedError)
|
81
|
-
})
|
82
|
-
})
|
83
|
-
|
84
|
-
describe('queryDevices', () => {
|
85
|
-
it('should queryDevices successfully', async () => {
|
86
|
-
const mockDevice: Device = {
|
87
|
-
_id: '1',
|
88
|
-
name: 'name',
|
89
|
-
description: '',
|
90
|
-
labels: {},
|
91
|
-
tenantId: '',
|
92
|
-
deviceType: '',
|
93
|
-
UUID: '123123',
|
94
|
-
createdTime: 0,
|
95
|
-
owner: '',
|
96
|
-
}
|
97
|
-
const axiosPost = mockPost.mockResolvedValueOnce({ data: { totalRecords: 1, records: mockDevice }, status: 200 })
|
98
|
-
|
99
|
-
const result = await DeviceService.queryDevices({ start: 0, limit: 20000, gpsLastSeen: { $exists: true } })
|
100
|
-
|
101
|
-
expect(axiosPost).toHaveBeenCalledWith('/api/v1/devices/query', { start: 0, limit: 20000, gpsLastSeen: { $exists: true } }, {
|
102
|
-
headers: {
|
103
|
-
Accept: 'application/json',
|
104
|
-
},
|
105
|
-
})
|
106
|
-
|
107
|
-
expect(result).toEqual({ totalRecords: 1, records: mockDevice })
|
108
|
-
})
|
109
|
-
|
110
|
-
it('should throw an error if the API call fails', async () => {
|
111
|
-
const axiosPost = mockPost.mockRejectedValueOnce('')
|
112
|
-
|
113
|
-
await expect(DeviceService.queryDevices({ start: 0, limit: 20000, gpsLastSeen: { $exists: true } })).rejects.toThrow(new Error('Devices API Error'))
|
114
|
-
expect(axiosPost).toHaveBeenCalledWith('/api/v1/devices/query', { start: 0, limit: 20000, gpsLastSeen: { $exists: true } }, {
|
115
|
-
headers: {
|
116
|
-
Accept: 'application/json',
|
117
|
-
},
|
118
|
-
})
|
119
|
-
})
|
120
|
-
})
|
121
|
-
|
122
|
-
describe('getDeviceByUUID', () => {
|
123
|
-
it('returns the device record for a valid UUID', async () => {
|
124
|
-
const uuid = '12345'
|
125
|
-
const expectedDevice: Device = { id: 1, name: 'Device 1' } as any
|
126
|
-
const mockedResponse = { data: { records: [expectedDevice] } }
|
127
|
-
mockGet.mockResolvedValueOnce(mockedResponse)
|
128
|
-
|
129
|
-
const result = await DeviceService.getDeviceByUUID(uuid)
|
130
|
-
|
131
|
-
expect(mockGet).toHaveBeenCalledWith(`/api/v1/devices/${uuid}`, { headers: { Accept: 'application/json' } })
|
132
|
-
expect(result).toEqual(expectedDevice)
|
133
|
-
})
|
134
|
-
|
135
|
-
it('should throw an error if the API call fails', async () => {
|
136
|
-
const uuid = 'invalid'
|
137
|
-
const expectedError = new Error('Devices API Error')
|
138
|
-
mockGet.mockRejectedValueOnce(expectedError)
|
139
|
-
|
140
|
-
await expect(DeviceService.getDeviceByUUID(uuid)).rejects.toThrow(expectedError)
|
141
|
-
})
|
142
|
-
})
|
143
|
-
|
144
|
-
describe('getDeviceByUUIDs', () => {
|
145
|
-
it('should return an empty array when uuids is empty', async () => {
|
146
|
-
mockGet.mockResolvedValueOnce({ data: { totalRecords: 0, records: [] } })
|
147
|
-
|
148
|
-
const result = await DeviceService.getDeviceByUUIDs([])
|
149
|
-
expect(result).toEqual({
|
150
|
-
totalRecords: 0,
|
151
|
-
records: [],
|
152
|
-
})
|
153
|
-
})
|
154
|
-
|
155
|
-
it('should return an array of devices when uuids are provided', async () => {
|
156
|
-
mockGet.mockResolvedValueOnce({ data: { totalRecords: 2, records: [{ id: 1, name: 'Device 1' }, { id: 2, name: 'Device 2' }] } })
|
157
|
-
|
158
|
-
const result = await DeviceService.getDeviceByUUIDs(['uuid1', 'uuid2'])
|
159
|
-
expect(result).toEqual({ records: [{ id: 1, name: 'Device 1' }, { id: 2, name: 'Device 2' }], totalRecords: 2 })
|
160
|
-
})
|
161
|
-
|
162
|
-
it('should call with the correct URL and headers', async () => {
|
163
|
-
const uuids = ['uuid1', 'uuid2']
|
164
|
-
mockGet.mockResolvedValueOnce({ data: { totalRecords: 0, records: [] } })
|
165
|
-
|
166
|
-
await DeviceService.getDeviceByUUIDs(uuids)
|
167
|
-
expect(mockGet).toHaveBeenCalledWith(`/api/v1/devices?arrayUUIDs=${uuids.join(',')}`, {
|
168
|
-
headers: {
|
169
|
-
Accept: 'application/json',
|
170
|
-
},
|
171
|
-
})
|
172
|
-
})
|
173
|
-
|
174
|
-
it('should return an empty array when an error occurs', async () => {
|
175
|
-
const expectedError = new Error('Devices API Error')
|
176
|
-
mockGet.mockRejectedValueOnce(new Error('qweqwe API Error'))
|
177
|
-
await expect(DeviceService.getDeviceByUUIDs(['uuid1', 'uuid2'])).rejects.toThrow(expectedError)
|
178
|
-
})
|
179
|
-
})
|
180
|
-
|
181
|
-
describe('getDeviceAttachements', () => {
|
182
|
-
it('getDeviceAttachements success', async () => {
|
183
|
-
const axiosGet = mockGet.mockResolvedValueOnce({ data: '', status: 200 })
|
184
|
-
|
185
|
-
const result = await DeviceService.getDeviceAttachements('uuid111')
|
186
|
-
|
187
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/devices/attachments/uuid111', {
|
188
|
-
headers: {
|
189
|
-
Accept: 'application/json',
|
190
|
-
},
|
191
|
-
})
|
192
|
-
|
193
|
-
expect(result).toEqual('')
|
194
|
-
})
|
195
|
-
|
196
|
-
it('getDeviceAttachements api unkown error', async () => {
|
197
|
-
const axiosGet = mockGet.mockRejectedValueOnce('')
|
198
|
-
|
199
|
-
await expect(DeviceService.getDeviceAttachements('uuid111')).rejects.toThrow(new Error('Devices API Error'))
|
200
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/devices/attachments/uuid111', {
|
201
|
-
headers: {
|
202
|
-
Accept: 'application/json',
|
203
|
-
},
|
204
|
-
})
|
205
|
-
})
|
206
|
-
})
|
207
|
-
})
|
@@ -1,110 +0,0 @@
|
|
1
|
-
import {DavraApiClient} from './davraApi'
|
2
|
-
|
3
|
-
import type { Device } from '~/types'
|
4
|
-
|
5
|
-
const getDevices = async (start?: number, limit?: number, sort?: string, filters?: string): Promise<{ totalRecords: number; records: Device[] }> => {
|
6
|
-
const params = []
|
7
|
-
params.push(`start=${start || 0}`)
|
8
|
-
|
9
|
-
if (limit)
|
10
|
-
params.push(`limit=${limit}`)
|
11
|
-
if (sort)
|
12
|
-
params.push(`sort=${sort}`)
|
13
|
-
if (filters)
|
14
|
-
params.push(filters)
|
15
|
-
|
16
|
-
try {
|
17
|
-
const { data } = await DavraApiClient().get<any>(
|
18
|
-
`/api/v1/devices?${params.join('&')}`,
|
19
|
-
{
|
20
|
-
headers: {
|
21
|
-
Accept: 'application/json',
|
22
|
-
},
|
23
|
-
},
|
24
|
-
|
25
|
-
)
|
26
|
-
return data
|
27
|
-
}
|
28
|
-
catch {
|
29
|
-
throw new Error('Devices API Error')
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
const queryDevices = async (query: any): Promise<{ totalRecords: number; records: Device[] }> => {
|
34
|
-
try {
|
35
|
-
const { data } = await DavraApiClient().post<any>(
|
36
|
-
'/api/v1/devices/query',
|
37
|
-
query,
|
38
|
-
{
|
39
|
-
headers: {
|
40
|
-
Accept: 'application/json',
|
41
|
-
},
|
42
|
-
},
|
43
|
-
|
44
|
-
)
|
45
|
-
return data
|
46
|
-
}
|
47
|
-
catch (error) {
|
48
|
-
throw new Error('Devices API Error')
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
const getDeviceByUUID = async (uuid: string): Promise<Device | null> => {
|
53
|
-
try {
|
54
|
-
const { data } = await DavraApiClient().get<any>(
|
55
|
-
`/api/v1/devices/${uuid}`,
|
56
|
-
{
|
57
|
-
headers: {
|
58
|
-
Accept: 'application/json',
|
59
|
-
},
|
60
|
-
},
|
61
|
-
|
62
|
-
)
|
63
|
-
return data.records[0]
|
64
|
-
}
|
65
|
-
catch {
|
66
|
-
throw new Error('Devices API Error')
|
67
|
-
}
|
68
|
-
}
|
69
|
-
const getDeviceByUUIDs = async (uuids: string[]): Promise<{ totalRecords: number; records: Device[] }> => {
|
70
|
-
try {
|
71
|
-
const { data } = await DavraApiClient().get<any>(
|
72
|
-
`/api/v1/devices?arrayUUIDs=${uuids.join(',')}`,
|
73
|
-
{
|
74
|
-
headers: {
|
75
|
-
Accept: 'application/json',
|
76
|
-
},
|
77
|
-
},
|
78
|
-
|
79
|
-
)
|
80
|
-
return data
|
81
|
-
}
|
82
|
-
catch {
|
83
|
-
throw new Error('Devices API Error')
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
const getDeviceAttachements = async (uuid: string): Promise<any> => {
|
88
|
-
try {
|
89
|
-
const { data } = await DavraApiClient().get<any>(
|
90
|
-
`/api/v1/devices/attachments/${uuid}`,
|
91
|
-
{
|
92
|
-
headers: {
|
93
|
-
Accept: 'application/json',
|
94
|
-
},
|
95
|
-
},
|
96
|
-
|
97
|
-
)
|
98
|
-
return data
|
99
|
-
}
|
100
|
-
catch {
|
101
|
-
throw new Error('Devices API Error')
|
102
|
-
}
|
103
|
-
}
|
104
|
-
export default {
|
105
|
-
getDevices,
|
106
|
-
queryDevices,
|
107
|
-
getDeviceByUUID,
|
108
|
-
getDeviceByUUIDs,
|
109
|
-
getDeviceAttachements,
|
110
|
-
}
|
package/src/services/index.ts
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
|
2
|
-
import UserSessionService from './userSessionService'
|
3
|
-
import DevicesCountersService from './devicesCountersService'
|
4
|
-
import TwinsCountersService from './twinsCountersService'
|
5
|
-
import DevicesService from './devicesService'
|
6
|
-
import TwinsService from './twinsService'
|
7
|
-
import TimeseriesService from './timeseriesService'
|
8
|
-
import LabelService from './labelsService'
|
9
|
-
import MetricsService from './metricsService'
|
10
|
-
|
11
|
-
export * from './davraApi'
|
12
|
-
|
13
|
-
export {
|
14
|
-
UserSessionService,
|
15
|
-
DevicesCountersService,
|
16
|
-
TwinsCountersService,
|
17
|
-
DevicesService,
|
18
|
-
TwinsService,
|
19
|
-
TimeseriesService,
|
20
|
-
LabelService,
|
21
|
-
MetricsService
|
22
|
-
}
|
@@ -1,124 +0,0 @@
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
2
|
-
import LabelsService from '~/services/labelsService'
|
3
|
-
|
4
|
-
const mockGet = vi.fn()
|
5
|
-
const mockPost = vi.fn()
|
6
|
-
vi.mock('./davraApi', () => {
|
7
|
-
return {
|
8
|
-
default: vi.fn(() => ({
|
9
|
-
get: mockGet,
|
10
|
-
post: mockPost,
|
11
|
-
})),
|
12
|
-
}
|
13
|
-
})
|
14
|
-
|
15
|
-
describe('Labels Service', () => {
|
16
|
-
beforeEach(() => {
|
17
|
-
|
18
|
-
})
|
19
|
-
|
20
|
-
afterEach(() => {
|
21
|
-
|
22
|
-
})
|
23
|
-
|
24
|
-
it('getLabels success', async () => {
|
25
|
-
const mockLabels = ['label1']
|
26
|
-
const axiosGet = mockGet.mockResolvedValueOnce({ data: mockLabels, status: 200 })
|
27
|
-
|
28
|
-
const result = await LabelsService.getLabels()
|
29
|
-
|
30
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/tags/keys', {
|
31
|
-
headers: {
|
32
|
-
Accept: 'application/json',
|
33
|
-
},
|
34
|
-
})
|
35
|
-
|
36
|
-
expect(result).toEqual(mockLabels)
|
37
|
-
})
|
38
|
-
|
39
|
-
it('getLabels api unkown error', async () => {
|
40
|
-
const axiosGet = mockGet.mockRejectedValueOnce('')
|
41
|
-
|
42
|
-
const result = await LabelsService.getLabels()
|
43
|
-
|
44
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/tags/keys', {
|
45
|
-
headers: {
|
46
|
-
Accept: 'application/json',
|
47
|
-
},
|
48
|
-
})
|
49
|
-
|
50
|
-
expect(result).toEqual([])
|
51
|
-
})
|
52
|
-
|
53
|
-
it('getValuesByKey success', async () => {
|
54
|
-
const mockValues = ['val1', 'val2']
|
55
|
-
|
56
|
-
const axiosGet = mockGet.mockResolvedValueOnce({ data: mockValues, status: 200 })
|
57
|
-
|
58
|
-
const result = await LabelsService.getValuesByKey('testKey')
|
59
|
-
|
60
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/tags/values/testKey', {
|
61
|
-
headers: {
|
62
|
-
Accept: 'application/json',
|
63
|
-
},
|
64
|
-
})
|
65
|
-
|
66
|
-
expect(result).toEqual(mockValues)
|
67
|
-
})
|
68
|
-
|
69
|
-
it('getValuesByKey api unkown error', async () => {
|
70
|
-
const axiosGet = mockGet.mockRejectedValueOnce('')
|
71
|
-
|
72
|
-
const result = await LabelsService.getValuesByKey('test')
|
73
|
-
|
74
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/tags/values/testKey', {
|
75
|
-
headers: {
|
76
|
-
Accept: 'application/json',
|
77
|
-
},
|
78
|
-
})
|
79
|
-
|
80
|
-
expect(result).toEqual([])
|
81
|
-
})
|
82
|
-
|
83
|
-
it('createLabel success', async () => {
|
84
|
-
const axiosPost = mockPost.mockResolvedValueOnce({})
|
85
|
-
|
86
|
-
const result = await LabelsService.createLabel({ qwe: 'qqwe' })
|
87
|
-
|
88
|
-
expect(axiosPost).toHaveBeenCalledWith('/api/v1/tags', { qwe: 'qqwe' }, {
|
89
|
-
headers: {
|
90
|
-
Accept: 'application/json',
|
91
|
-
},
|
92
|
-
})
|
93
|
-
|
94
|
-
expect(result).toEqual(true)
|
95
|
-
})
|
96
|
-
|
97
|
-
it('createLabel without a clean payload', async () => {
|
98
|
-
const axiosPost = mockPost.mockResolvedValueOnce({})
|
99
|
-
|
100
|
-
const result = await LabelsService.createLabel({ qwe: 'qqwe', twinType1: 'uuidtwinType', aaw: 'n@123123"" "!!' }, ['twinType1'])
|
101
|
-
|
102
|
-
expect(axiosPost).toHaveBeenCalledWith('/api/v1/tags', { qwe: 'qqwe' }, {
|
103
|
-
headers: {
|
104
|
-
Accept: 'application/json',
|
105
|
-
},
|
106
|
-
})
|
107
|
-
|
108
|
-
expect(result).toEqual(true)
|
109
|
-
})
|
110
|
-
|
111
|
-
it('createLabel api unkown error', async () => {
|
112
|
-
const axiosPost = mockPost.mockRejectedValueOnce('')
|
113
|
-
|
114
|
-
const result = await LabelsService.createLabel({ test: 'test1' })
|
115
|
-
|
116
|
-
expect(axiosPost).toHaveBeenCalledWith('/api/v1/tags', { test: 'test1' }, {
|
117
|
-
headers: {
|
118
|
-
Accept: 'application/json',
|
119
|
-
},
|
120
|
-
})
|
121
|
-
|
122
|
-
expect(result).toEqual(false)
|
123
|
-
})
|
124
|
-
})
|
@@ -1,71 +0,0 @@
|
|
1
|
-
import { DavraApiClient } from './davraApi'
|
2
|
-
|
3
|
-
const getLabels = async (): Promise<any[]> => {
|
4
|
-
try {
|
5
|
-
const { data } = await DavraApiClient().get<any>(
|
6
|
-
'/api/v1/tags/keys',
|
7
|
-
{
|
8
|
-
headers: {
|
9
|
-
Accept: 'application/json',
|
10
|
-
},
|
11
|
-
},
|
12
|
-
|
13
|
-
)
|
14
|
-
return data || []
|
15
|
-
}
|
16
|
-
catch (error) {
|
17
|
-
return []
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
const getValuesByKey = async (key: string): Promise<string[]> => {
|
22
|
-
try {
|
23
|
-
const { data } = await DavraApiClient().get<any>(
|
24
|
-
`/api/v1/tags/values/${key}`,
|
25
|
-
{
|
26
|
-
headers: {
|
27
|
-
Accept: 'application/json',
|
28
|
-
},
|
29
|
-
},
|
30
|
-
|
31
|
-
)
|
32
|
-
return data || []
|
33
|
-
}
|
34
|
-
catch (error) {
|
35
|
-
return []
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
const createLabel = async (labels: { [key: string]: string }, twinTypeNames?: string[]): Promise<boolean> => {
|
40
|
-
const labelsToPost = { ...labels }
|
41
|
-
Object.entries(labelsToPost).forEach(([key, value]) => {
|
42
|
-
if (twinTypeNames && twinTypeNames.includes(key))
|
43
|
-
delete labelsToPost[key]
|
44
|
-
|
45
|
-
const pattern = /[^a-zA-Z_0-9\-+]/g
|
46
|
-
if (!value || pattern.test(value))
|
47
|
-
delete labelsToPost[key]
|
48
|
-
})
|
49
|
-
try {
|
50
|
-
await DavraApiClient().post<any>(
|
51
|
-
'/api/v1/tags',
|
52
|
-
labelsToPost,
|
53
|
-
{
|
54
|
-
headers: {
|
55
|
-
Accept: 'application/json',
|
56
|
-
},
|
57
|
-
},
|
58
|
-
|
59
|
-
)
|
60
|
-
return true
|
61
|
-
}
|
62
|
-
catch (error) {
|
63
|
-
return false
|
64
|
-
}
|
65
|
-
}
|
66
|
-
|
67
|
-
export default {
|
68
|
-
getLabels,
|
69
|
-
createLabel,
|
70
|
-
getValuesByKey,
|
71
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
2
|
-
import MetricsCountersService from '~/services/metricsCountersService'
|
3
|
-
|
4
|
-
const mockGet = vi.fn()
|
5
|
-
const mockPost = vi.fn()
|
6
|
-
vi.mock('./davraApi', () => {
|
7
|
-
return {
|
8
|
-
default: vi.fn(() => ({
|
9
|
-
get: mockGet,
|
10
|
-
post: mockPost,
|
11
|
-
})),
|
12
|
-
}
|
13
|
-
})
|
14
|
-
|
15
|
-
describe('MetricsCounters Service', () => {
|
16
|
-
beforeEach(() => {
|
17
|
-
|
18
|
-
})
|
19
|
-
|
20
|
-
afterEach(() => {
|
21
|
-
|
22
|
-
})
|
23
|
-
|
24
|
-
it('getMetricsCounters success', async () => {
|
25
|
-
const mockMetricsCounters = ['metric1']
|
26
|
-
const axiosGet = mockGet.mockResolvedValueOnce({ data: mockMetricsCounters, status: 200 })
|
27
|
-
|
28
|
-
const result = await MetricsCountersService.getMetricsCounters()
|
29
|
-
|
30
|
-
expect(axiosGet).toHaveBeenCalledWith('/api/v1/iotdata/metrics/counters', {
|
31
|
-
headers: {
|
32
|
-
Accept: 'application/json',
|
33
|
-
},
|
34
|
-
})
|
35
|
-
|
36
|
-
expect(result).toEqual(mockMetricsCounters)
|
37
|
-
})
|
38
|
-
|
39
|
-
it('getMetricsCounters api unkown error', async () => {
|
40
|
-
mockGet.mockRejectedValueOnce({ response: { status: 500 } })
|
41
|
-
|
42
|
-
await expect(MetricsCountersService.getMetricsCounters()).rejects.toThrow(new Error('Metric Counter API Error'))
|
43
|
-
})
|
44
|
-
})
|