mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
234 lines
5.8 KiB
TypeScript
234 lines
5.8 KiB
TypeScript
import {SessionUserCountByStatusByReleaseFixture} from 'sentry-fixture/sessions';
|
|
|
|
import {transformSessionsResponseToTable} from 'sentry/views/dashboards/widgetCard/transformSessionsResponseToTable';
|
|
|
|
describe('transformSessionsResponseToTable', function () {
|
|
it('transforms sessions into table', () => {
|
|
expect(
|
|
transformSessionsResponseToTable(SessionUserCountByStatusByReleaseFixture(), [], [])
|
|
).toEqual({
|
|
data: [
|
|
{
|
|
'count_unique(user)': 1,
|
|
id: '0',
|
|
release: '1',
|
|
'session.status': 'crashed',
|
|
'sum(session)': 34,
|
|
},
|
|
{
|
|
'count_unique(user)': 1,
|
|
id: '1',
|
|
release: '1',
|
|
'session.status': 'abnormal',
|
|
'sum(session)': 1,
|
|
},
|
|
{
|
|
'count_unique(user)': 2,
|
|
id: '2',
|
|
release: '1',
|
|
'session.status': 'errored',
|
|
'sum(session)': 451,
|
|
},
|
|
{
|
|
'count_unique(user)': 3,
|
|
id: '3',
|
|
release: '1',
|
|
'session.status': 'healthy',
|
|
'sum(session)': 5058,
|
|
},
|
|
{
|
|
'count_unique(user)': 2,
|
|
id: '4',
|
|
release: '2',
|
|
'session.status': 'crashed',
|
|
'sum(session)': 35,
|
|
},
|
|
{
|
|
'count_unique(user)': 1,
|
|
id: '5',
|
|
release: '2',
|
|
'session.status': 'abnormal',
|
|
'sum(session)': 1,
|
|
},
|
|
{
|
|
'count_unique(user)': 1,
|
|
id: '6',
|
|
release: '2',
|
|
'session.status': 'errored',
|
|
'sum(session)': 452,
|
|
},
|
|
{
|
|
'count_unique(user)': 10,
|
|
id: '7',
|
|
release: '2',
|
|
'session.status': 'healthy',
|
|
'sum(session)': 5059,
|
|
},
|
|
],
|
|
meta: {
|
|
'count_unique(user)': 'integer',
|
|
release: 'string',
|
|
'session.status': 'string',
|
|
'sum(session)': 'integer',
|
|
},
|
|
});
|
|
});
|
|
it('adds derived metric fields', () => {
|
|
expect(
|
|
transformSessionsResponseToTable(
|
|
SessionUserCountByStatusByReleaseFixture(),
|
|
['count_crashed(session)'],
|
|
[]
|
|
)
|
|
).toEqual({
|
|
data: [
|
|
{
|
|
'count_crashed(session)': 34,
|
|
'count_unique(user)': 1,
|
|
id: '0',
|
|
release: '1',
|
|
'session.status': 'crashed',
|
|
'sum(session)': 34,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '1',
|
|
release: '1',
|
|
'session.status': 'abnormal',
|
|
'sum(session)': 1,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 2,
|
|
id: '2',
|
|
release: '1',
|
|
'session.status': 'errored',
|
|
'sum(session)': 451,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 3,
|
|
id: '3',
|
|
release: '1',
|
|
'session.status': 'healthy',
|
|
'sum(session)': 5058,
|
|
},
|
|
{
|
|
'count_crashed(session)': 35,
|
|
'count_unique(user)': 2,
|
|
id: '4',
|
|
release: '2',
|
|
'session.status': 'crashed',
|
|
'sum(session)': 35,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '5',
|
|
release: '2',
|
|
'session.status': 'abnormal',
|
|
'sum(session)': 1,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '6',
|
|
release: '2',
|
|
'session.status': 'errored',
|
|
'sum(session)': 452,
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 10,
|
|
id: '7',
|
|
release: '2',
|
|
'session.status': 'healthy',
|
|
'sum(session)': 5059,
|
|
},
|
|
],
|
|
meta: {
|
|
'count_crashed(session)': 'integer',
|
|
'count_unique(user)': 'integer',
|
|
release: 'string',
|
|
'session.status': 'string',
|
|
'sum(session)': 'integer',
|
|
},
|
|
});
|
|
});
|
|
it('strips away injected fields', () => {
|
|
expect(
|
|
transformSessionsResponseToTable(
|
|
SessionUserCountByStatusByReleaseFixture(),
|
|
['count_crashed(session)'],
|
|
['sum(session)']
|
|
)
|
|
).toEqual({
|
|
data: [
|
|
{
|
|
'count_crashed(session)': 34,
|
|
'count_unique(user)': 1,
|
|
id: '0',
|
|
release: '1',
|
|
'session.status': 'crashed',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '1',
|
|
release: '1',
|
|
'session.status': 'abnormal',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 2,
|
|
id: '2',
|
|
release: '1',
|
|
'session.status': 'errored',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 3,
|
|
id: '3',
|
|
release: '1',
|
|
'session.status': 'healthy',
|
|
},
|
|
{
|
|
'count_crashed(session)': 35,
|
|
'count_unique(user)': 2,
|
|
id: '4',
|
|
release: '2',
|
|
'session.status': 'crashed',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '5',
|
|
release: '2',
|
|
'session.status': 'abnormal',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 1,
|
|
id: '6',
|
|
release: '2',
|
|
'session.status': 'errored',
|
|
},
|
|
{
|
|
'count_crashed(session)': 0,
|
|
'count_unique(user)': 10,
|
|
id: '7',
|
|
release: '2',
|
|
'session.status': 'healthy',
|
|
},
|
|
],
|
|
meta: {
|
|
'count_crashed(session)': 'integer',
|
|
'count_unique(user)': 'integer',
|
|
release: 'string',
|
|
'session.status': 'string',
|
|
},
|
|
});
|
|
});
|
|
});
|