@shko.online/componentframework-mock
Version:
Mocking library to help with testing PowerApps Component Framework Components
132 lines (121 loc) • 3.27 kB
text/typescript
/*
Copyright (c) 2022 Betim Beja and Shko Online LLC
Licensed under the MIT license.
*/
import alasql from 'alasql';
export const CREATE_TABLE_METADATA_OPTIONSET = `
CREATE TABLE Metadata__Optionset(
OptionSetId UniqueIdentifier PRIMARY KEY,
LogicalName string,
IsCustomOptionSet bit,
OptionSetType int
)
`;
export const INSERT_METADATA_OPTIONSET = `
INSERT INTO Metadata__Optionset
VALUES (
?,
?,
?,
?
)
`;
export const SELECT_METADATA_OPTIONSET = `
SELECT
OptionSetId,
LogicalName,
IsCustomOptionSet,
OptionSetType
FROM
Metadata__Optionset
WHERE OptionSetId = ?
`;
export const CREATE_TABLE_METADATA_OPTIONSET_OPTION = `
CREATE TABLE Metadata__Optionset_Option(
[OptionId] UniqueIdentifier PRIMARY KEY,
[OptionSetId] UniqueIdentifier,
[Color] string NULL,
[Value] int,
[Label] string,
[Description] string NULL,
[DefaultStatus] int NULL,
[State] int NULL
)
`;
export const INSERT_METADATA_OPTIONSET_OPTION = `
INSERT INTO Metadata__Optionset_Option
VALUES (
?,
?,
?,
?,
?,
?,
?,
?
)
`;
export const SELECT_METADATA_OPTIONSET_OPTION = `
SELECT
OptionId,
OptionSetId,
Color,
[Value],
Label,
Description,
DefaultStatus,
State
FROM
Metadata__Optionset_Option
WHERE OptionSetId = ?
`;
export interface OptionSet {
OptionSetId: string;
LogicalName: string;
IsCustomOptionSet: boolean;
OptionSetType: number;
}
export interface OptionSetOption {
OptionId: string;
OptionSetId: string;
Color?: string;
Value: number;
Label: string;
Description?: string;
DefaultStatus?: number;
State?: number;
}
export class OptionSetMetadataSQL {
sql: typeof alasql;
constructor(sql: typeof alasql) {
this.sql = sql;
sql(CREATE_TABLE_METADATA_OPTIONSET);
sql(CREATE_TABLE_METADATA_OPTIONSET_OPTION);
}
AddOptionSetMetadata(metadata: OptionSet) {
return this.sql(INSERT_METADATA_OPTIONSET, [
metadata.OptionSetId,
metadata.LogicalName,
metadata.IsCustomOptionSet,
metadata.OptionSetType,
]);
}
SelectOptionSetMetadata(OptionSetId: string) {
return this.sql(SELECT_METADATA_OPTIONSET, [OptionSetId]) as OptionSet[];
}
AddOptionMetadata(metadata: OptionSetOption) {
return this.sql(INSERT_METADATA_OPTIONSET_OPTION, [
metadata.OptionId,
metadata.OptionSetId,
metadata.Color,
metadata.Value,
metadata.Label,
metadata.Description,
metadata.DefaultStatus,
metadata.State,
]);
}
SelectOptionSetOptionMetadata(OptionSetId: string) {
return this.sql(SELECT_METADATA_OPTIONSET_OPTION, [OptionSetId]) as OptionSetOption[];
}
}