UNPKG

@shko.online/componentframework-mock

Version:

Mocking library to help with testing PowerApps Component Framework Components

31 lines (27 loc) 1.15 kB
/* Copyright (c) 2022 Betim Beja and Shko Online LLC Licensed under the MIT license. */ import type { MockGenerator } from './MockGenerator'; import type { ShkoOnline } from '../ShkoOnline'; import { stub } from 'sinon'; export const mockSetControlResource = < TInputs extends ShkoOnline.PropertyTypes<TInputs>, TOutputs extends ShkoOnline.KnownTypes<TOutputs>, >( mockGenerator: MockGenerator<TInputs, TOutputs>, ) => { mockGenerator.SetControlResource = stub(); mockGenerator.SetControlResource.callsFake((resource: string) => { const xmlResource = new DOMParser().parseFromString(resource, 'text/xml'); const elements = xmlResource.getElementsByTagNameNS('', 'data'); mockGenerator.context.resources.getString.callsFake((id) => { for (let i = 0; i < elements.length; i++) { if (elements[i].getAttribute('name') === id) { return elements[i].getElementsByTagName('value')[0].innerHTML; } } throw new Error(`Could not find string with id '${id}'`); }); }); };