Skip to content

Commit

Permalink
fix: add sortOrder to table-data-request (#67)
Browse files Browse the repository at this point in the history
Fixes #64
  • Loading branch information
bobbyg603 authored Dec 9, 2021
1 parent 638c2e7 commit 80e2bde
Show file tree
Hide file tree
Showing 10 changed files with 52 additions and 47 deletions.
8 changes: 8 additions & 0 deletions spec/files/native/post-native-crash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ export async function postNativeCrashAndSymbols(
files
);

return postNativeCrash(database, application, version);
}

export async function postNativeCrash(
database: string,
application: string,
version: string
): Promise<number> {
const crashFile = createUploadableFile('./spec/files/native/myConsoleCrasher.zip');
const crashPostClient = new CrashPostClient(database);
const postCrashResult = await crashPostClient.postCrash(
Expand Down
2 changes: 0 additions & 2 deletions src/common/data/search/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@ export * from './filter-condition/filter-condition';
export { ApiDataFilterGroup } from './filter-group/api-data-filter-group';
export { FilterOperator } from './filter-operator/filter-operator';
export { ApiDataFilter } from './filter/api-data-filter';
export { OrderFilter } from './order-filter/order-filter';

13 changes: 0 additions & 13 deletions src/common/data/search/order-filter/order-filter.spec.ts

This file was deleted.

6 changes: 0 additions & 6 deletions src/common/data/search/order-filter/order-filter.ts

This file was deleted.

3 changes: 2 additions & 1 deletion src/common/data/table-data/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export { TableDataClient } from './table-data-client/table-data-client';
export { TableDataRequest } from './table-data-client/table-data-request';
export { TableDataResponse } from './table-data-client/table-data-response';
export { TableDataFormDataBuilder } from './table-data-form-data-builder/table-data-form-data-builder';
export { ColumnSortOrder } from './table-data-form-data-builder/column-sort-order';
export { TableDataFormDataBuilder } from './table-data-form-data-builder/table-data-form-data-builder';
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApiDataFilterGroup, OrderFilter } from '@common';
import { ApiDataFilterGroup, ColumnSortOrder } from '@common';

export interface TableDataRequest {
database?: string;
Expand All @@ -7,5 +7,5 @@ export interface TableDataRequest {
page?: number;
pageSize?: number;
sortColumn?: string;
sortOrder?: OrderFilter;
sortOrder?: ColumnSortOrder;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type ColumnSortOrder = 'asc' | 'desc' | '';
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApiDataFilter, ApiDataFilterGroup, OrderFilter } from '@common';
import { ApiDataFilter, ApiDataFilterGroup } from '@common';
import { TableDataFormDataBuilder } from './table-data-form-data-builder';

describe('TableDataFormDataBuilder', () => {
Expand Down Expand Up @@ -121,18 +121,17 @@ describe('TableDataFormDataBuilder', () => {

describe('withSortOrder', () => {
it('should add sortOrder', () => {
const sortOrder = OrderFilter.ascending;
const expectedSortOrder = 'asc';
const sortOrder = 'asc';

const result = <FakeFormData><unknown>new TableDataFormDataBuilder(formDataFactory)
.withSortOrder(sortOrder)
.build();

expect(result.get('sortorder')).toEqual(expectedSortOrder);
expect(result.get('sortorder')).toEqual(sortOrder);
});

it('should not add sortorder if sortOrder is none', () => {
const sortOrder = OrderFilter.none;
const sortOrder = '';

const result = <FakeFormData><unknown>new TableDataFormDataBuilder(formDataFactory)
.withSortOrder(sortOrder)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

import { ApiDataFilterGroup, OrderFilter } from '@common';
import { ApiDataFilterGroup } from '@common';
import FormData from 'form-data';
import { ColumnSortOrder } from './column-sort-order';

export class TableDataFormDataBuilder {

Expand Down Expand Up @@ -63,17 +64,9 @@ export class TableDataFormDataBuilder {
return this;
}

withSortOrder(sortOrder: OrderFilter | undefined): TableDataFormDataBuilder {
withSortOrder(sortOrder: ColumnSortOrder | undefined): TableDataFormDataBuilder {
if (sortOrder) {
let translatedSortOrder;
if (sortOrder === OrderFilter.none) {
return this;
} else if (sortOrder === OrderFilter.ascending) {
translatedSortOrder = 'asc';
} else if (sortOrder === OrderFilter.descending) {
translatedSortOrder = 'desc';
}
this._formParts.sortorder = translatedSortOrder;
this._formParts.sortorder = sortOrder;
}
return this;
}
Expand Down
38 changes: 31 additions & 7 deletions src/crashes/crashes-api-client/crashes-api-client.e2e.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { config } from '@spec/config';
import { BugSplatApiClient } from '@common';
import { ApiDataFilterGroup, BugSplatApiClient, FilterOperator } from '@common';
import { CrashApiClient } from '@crash';
import { CrashesApiClient } from '@crashes';
import { postNativeCrashAndSymbols } from '@spec/files/native/post-native-crash';
import { postNativeCrash, postNativeCrashAndSymbols } from '@spec/files/native/post-native-crash';

describe('CrashesApiClient', () => {
let crashClient: CrashApiClient;
Expand Down Expand Up @@ -30,9 +30,9 @@ describe('CrashesApiClient', () => {
it('should return 200 and array of crashes', async () => {
const database = config.database;
const pageSize = 1;

const result = await crashesClient.getCrashes({ database, pageSize });

const row = result.rows.find(row => Number(row.id) === id);
expect(result.rows).toBeTruthy();
expect(result.rows.length).toEqual(pageSize);
Expand All @@ -45,21 +45,45 @@ describe('CrashesApiClient', () => {
const database = config.database;
const pageSize = 1;
const columnGroups = ['stackKey'];

const result = await crashesClient.getCrashes({ database, pageSize, columnGroups });

const row = result.rows[0];
expect(result.rows).toBeTruthy();
expect(result.rows.length).toEqual(pageSize);
expect(row?.groupByCount).toBeGreaterThanOrEqual(1);
});

it('should return 200 with crashes sorted by sortColumn and sortOrder', async () => {
const database = config.database;
const pageSize = 2;
const sortColumn = 'id';
const sortOrder = 'asc';
const newestCrashId = await postNativeCrash(
config.database,
application,
version
);
const filterGroups = [ApiDataFilterGroup.fromColumnValues([`${id}`, `${newestCrashId}`], 'id', FilterOperator.or)];

const result = await crashesClient.getCrashes({
database,
filterGroups,
pageSize,
sortColumn,
sortOrder
});

const row = result.rows[0];
expect(row.id).toEqual(id);
});
});

describe('postNotes', () => {
it('should return 200', async () => {
const database = config.database;
const notes = 'BugSplat rocks!';

await crashesClient.postNotes(database, id, notes);
const result = await crashClient.getCrashById(database, id);

Expand Down

0 comments on commit 80e2bde

Please sign in to comment.