@shko.online/componentframework-mock
Version:
Mocking library to help with testing PowerApps Component Framework Components
31 lines (28 loc) • 1.14 kB
text/typescript
/*
Copyright (c) 2022 Betim Beja and Shko Online LLC
Licensed under the MIT license.
*/
import type { MockGenerator } from './MockGenerator';
import type { ShkoOnline } from '../ShkoOnline';
export const mockGetEntityMetadata = <
TInputs extends ShkoOnline.PropertyTypes<TInputs>,
TOutputs extends ShkoOnline.KnownTypes<TOutputs>,
>(
mockGenerator: MockGenerator<TInputs, TOutputs>,
) => {
mockGenerator.context.utils.getEntityMetadata.callsFake((entityName: string, attributes?: string[]) => {
return new Promise<ShkoOnline.EntityMetadata>((resolve, reject) => {
const result = mockGenerator.metadata.getTableMetadata(entityName);
if (!result) {
reject(`Could not find entity metadata for '${entityName}'`);
return;
}
if (attributes) {
result.Attributes = result.Attributes?.filter((attribute) =>
attributes.some((attributeFilter) => attribute.LogicalName === attributeFilter),
);
}
resolve(result as ShkoOnline.EntityMetadata);
});
});
};