imng-kendo-grid-odata
Version:
This library was generated with [Nx](https://nx.dev).
99 lines (92 loc) • 3.35 kB
JavaScript
import { jest, expect } from '@jest/globals';
import { of } from 'rxjs';
import { readFirst } from 'imng-ngrx-utils/testing';
import { KENDO_BUTTON, KENDO_SPLITBUTTON } from '@progress/kendo-angular-buttons';
import { ColumnChooserComponent } from '@progress/kendo-angular-grid';
import { KENDO_SVGICON } from '@progress/kendo-angular-icons';
import { KENDO_POPUP } from '@progress/kendo-angular-popup';
import { KENDO_PROGRESSBAR } from '@progress/kendo-angular-progressbar';
import { IMNG_KENDO_GRID_HEADER_STUBS, IMNG_KENDO_BUTTON_STUB } from 'imng-kendo-testing-stubs';
/* istanbul ignore file */
class ODataGridMockFacade {
constructor() {
this.loading$ = of(false);
this.gridODataState$ = of({});
this.gridData$ = of({
data: [{ id: 'apples' }],
total: 0,
});
this.gridPagerSettings$ = of({});
this.loadEntities = jest.fn();
this.reloadEntities = jest.fn();
}
}
function createODataGridMockFacade(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
mockFacade) {
const localFacade = new ODataGridMockFacade();
if (!mockFacade) {
return localFacade;
}
mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;
mockFacade.gridODataState$ =
mockFacade.gridODataState$ || localFacade.gridODataState$;
mockFacade.gridData$ = mockFacade.gridData$ || localFacade.gridData$;
mockFacade.gridPagerSettings$ =
mockFacade.gridPagerSettings$ || localFacade.gridPagerSettings$;
mockFacade.loadEntities =
mockFacade.loadEntities ||
jest.fn(() => {
//This is intentional
});
mockFacade.reloadEntities =
mockFacade.reloadEntities ||
jest.fn(() => {
//This is intentional
});
return mockFacade;
}
async function testGridODataState(done, facade) {
const filteringState = {
filter: {
logic: 'and',
filters: [{ field: '💩', operator: 'eq', value: '🍑' }],
},
};
let state = await readFirst(facade.gridODataState$);
expect(state).toStrictEqual({});
facade.loadEntities(filteringState);
state = await readFirst(facade.gridODataState$);
expect(state).toStrictEqual(filteringState);
facade.reloadEntities();
expect(state).toStrictEqual(filteringState);
facade.loadEntities({});
state = await readFirst(facade.gridODataState$);
expect(state).toStrictEqual({});
}
async function testGridPagerSettings(facade) {
const pagerSettings = await readFirst(facade.gridPagerSettings$);
expect(pagerSettings).toEqual(false);
}
function getKendoGridODataHeaderOverride() {
return {
remove: {
imports: [
KENDO_BUTTON,
KENDO_SPLITBUTTON,
KENDO_POPUP,
KENDO_PROGRESSBAR,
KENDO_SVGICON,
ColumnChooserComponent,
],
},
add: {
imports: [...IMNG_KENDO_GRID_HEADER_STUBS, IMNG_KENDO_BUTTON_STUB],
},
};
}
/**
* Generated bundle index. Do not edit.
*/
export { ODataGridMockFacade, createODataGridMockFacade, getKendoGridODataHeaderOverride, testGridODataState, testGridPagerSettings };
//# sourceMappingURL=imng-kendo-grid-odata-testing.mjs.map