Skip to content

Commit 1ed9b40

Browse files
committed
feat: enhance update table filters use case and add comprehensive tests
1 parent 589bfde commit 1ed9b40

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

backend/src/entities/table-filters/use-cases/update-table-filters.use.case.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ export class UpdateTableFiltersUseCase
5353
}
5454

5555
const updatedFilterEntity = buildNewTableFiltersEntity(updatedTableFilterData);
56+
for (const key in updatedFilterEntity) {
57+
// eslint-disable-next-line security/detect-object-injection
58+
if (updatedFilterEntity[key] === undefined) {
59+
// eslint-disable-next-line security/detect-object-injection
60+
delete updatedFilterEntity[key];
61+
}
62+
}
5663
const updatedFilters = Object.assign(filtersToUpdate, updatedFilterEntity);
5764
await this._dbContext.tableFiltersRepository.save(updatedFilters);
5865
return buildCreatedTableFilterRO(updatedFilters);

backend/test/ava-tests/saas-tests/table-filters-e2e-test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,28 @@ test.serial(`${currentTest} should return updated table filters`, async (t) => {
287287
t.is(updateTableFiltersRO.hasOwnProperty('createdAt'), true);
288288
t.is(updateTableFiltersRO.hasOwnProperty('updatedAt'), true);
289289
t.is(updateTableFiltersRO.name, updatedFiltersDTO.name);
290+
t.is(updateTableFiltersRO.id, createTableFiltersRO.id);
290291
t.deepEqual(updateTableFiltersRO.filters, updatedFiltersDTO.filters);
292+
293+
// should return updated table filters
294+
const getUpdatedTableFiltersResponse = await request(app.getHttpServer())
295+
.get(`/table-filters/${createConnectionRO.id}/all/?tableName=${testTableName}`)
296+
.set('Cookie', firstUserToken)
297+
.set('Content-Type', 'application/json')
298+
.set('Accept', 'application/json');
299+
const getUpdatedTableFiltersRO = JSON.parse(getUpdatedTableFiltersResponse.text);
300+
t.is(Array.isArray(getUpdatedTableFiltersRO), true);
301+
t.is(getUpdatedTableFiltersRO.length, 1);
302+
getUpdatedTableFiltersRO.forEach((el) => {
303+
t.is(el.hasOwnProperty('id'), true);
304+
t.is(el.hasOwnProperty('name'), true);
305+
t.is(el.hasOwnProperty('filters'), true);
306+
t.is(el.hasOwnProperty('dynamic_column'), true);
307+
t.is(el.hasOwnProperty('createdAt'), true);
308+
t.is(el.hasOwnProperty('updatedAt'), true);
309+
t.is(el.name, updatedFiltersDTO.name);
310+
t.deepEqual(el.filters, updatedFiltersDTO.filters);
311+
});
291312
} catch (e) {
292313
console.error(e);
293314
t.fail();

0 commit comments

Comments
 (0)