@v4fire/client
Version:
V4Fire client core library
77 lines (64 loc) • 1.68 kB
JavaScript
// @ts-check
/*!
* V4Fire Client Core
* https://github.com/V4Fire/Client
*
* Released under the MIT license
* https://github.com/V4Fire/Client/blob/master/LICENSE
*/
const
h = include('tests/helpers').default;
/**
* Starts a test
*
* @param {Playwright.Page} page
* @param {!Object} params
* @returns {Promise<void>}
*/
module.exports = async (page, params) => {
await h.utils.setup(page, params.context);
beforeEach(async () => {
await page.evaluate(() => {
globalThis.removeCreatedComponents();
});
});
describe('iStaticPage.providerDataStore', () => {
it('checking data by a provider name', async () => {
const target = await init({
dataProvider: 'demo.List'
});
expect(
await target.evaluate((ctx) => {
const item = ctx.r.providerDataStore.get('demo.List');
return Object.fastClone(item.select({where: {label: 'Foo'}}));
})
).toEqual({label: 'Foo', value: 'foo'});
});
it('checking data by a global name', async () => {
const target = await init({
globalName: 'foo',
dataProvider: 'demo.List'
});
expect(
await target.evaluate((ctx) => {
const item = ctx.r.providerDataStore.get('foo');
return Object.fastClone(item.select({where: {label: 'Foo'}}));
})
).toEqual({label: 'Foo', value: 'foo'});
});
async function init(attrs = {}) {
await page.evaluate((attrs) => {
globalThis.renderComponents('b-remote-provider', [
{
attrs: {
id: 'target',
...attrs
}
}
]);
}, attrs);
await h.component.waitForComponentStatus(page, '#target', 'ready');
return h.component.waitForComponent(page, '#target');
}
});
};