@v4fire/client
Version:
V4Fire client core library
99 lines (78 loc) • 2.45 kB
text/typescript
/*!
* V4Fire Client Core
* https://github.com/V4Fire/Client
*
* Released under the MIT license
* https://github.com/V4Fire/Client/blob/master/LICENSE
*/
import test from 'tests/config/unit/test';
import { BOM } from 'tests/helpers';
import { createTestHelpers } from 'base/b-virtual-scroll-new/test/api/helpers';
// eslint-disable-next-line max-lines-per-function
test.describe('<b-virtual-scroll-new>', () => {
let
component: Awaited<ReturnType<typeof createTestHelpers>>['component'],
provider: Awaited<ReturnType<typeof createTestHelpers>>['provider'],
state: Awaited<ReturnType<typeof createTestHelpers>>['state'];
test.beforeEach(async ({demoPage, page}) => {
await demoPage.goto();
({component, provider, state} = await createTestHelpers(page));
await provider.start();
await component.withChildren({
tombstone: {
type: 'div',
attrs: {
class: ['tombstone']
}
}
});
await component.withProps({
tombstoneCount: 4,
preloadAmount: 10
});
await page.addStyleTag({content: `
.tombstone {
width: 200px;
height: 200px;
margin: 16px;
background-color: gray;
}
.b-virtual-scroll-new__container {
min-width: initial !important;
min-height: initial !important;
}
`});
});
test.describe('tombstones switch to content', () => {
test('should not generate cls on initial loading', async ({page}) => {
const chunkSize = 12;
provider.response(200, () => ({data: state.data.addData(chunkSize)}));
provider.responder();
await component
.withDefaultPaginationProviderProps({chunkSize})
.withProps({chunkSize})
.build();
const score = await BOM.clsScore(page, async () => {
await provider.unresponder();
await component.waitForDataIndexChild(chunkSize - 1);
});
test.expect(score).toBe(0);
});
test('should not generate cls on second loading', async ({page}) => {
const chunkSize = 12;
provider.response(200, () => ({data: state.data.addData(chunkSize)}));
provider.responder();
await component
.withDefaultPaginationProviderProps({chunkSize})
.withProps({chunkSize})
.build();
const score = await BOM.clsScore(page, async () => {
await provider.unresponder();
await component.waitForDataIndexChild(chunkSize - 1);
await component.scrollToBottom();
await component.waitForDataIndexChild(chunkSize * 2 - 1);
});
test.expect(score).toBe(0);
});
});
});