@jss-rule-engine/core
Version:
Rule engine for Sitecore JSS
75 lines (61 loc) • 2.09 kB
text/typescript
import { FakeGraphQLItemProvider } from "@coresrc/graphQl/fakeGraphQLItemProvider";
import { IItemProvider } from "@coresrc/graphQl/itemProvider";
class SitecoreContextMockBuilder {
instance: any;
fakeItemProvider: FakeGraphQLItemProvider;
constructor(itemId: string, name: string, language: string = "en-NZ") {
this.fakeItemProvider = new FakeGraphQLItemProvider();
this.instance = {
itemId: itemId,
itemLanguage: language,
itemVersion: 1,
route: {
name: name,
displayName: name,
fields: {
},
},
databaseName: "master",
pageEditing: false,
pageState: "normal",
language: language,
variantId: "_default",
itemProvider: this.fakeItemProvider
};
}
getInstance(){
return this.instance;
}
template(templateName: string, templateId: string){
this.instance.templateName = templateName;
this.instance.templateId = templateId;
return this;
}
itemPath(itemPath: string){
this.instance.itemPath = itemPath;
return this;
}
site(siteName: string)
{
this.instance.site = { name: siteName };
return this;
}
language(language:string)
{
this.instance.language = language;
this.instance.itemLanguage = language;
return this;
}
fieldValue(fieldName: string, fieldValue: string){
this.instance.route.fields[fieldName] = { value: fieldValue };
return this;
}
itemProvider(itemProvider: IItemProvider)
{
this.instance.itemProvider = itemProvider;
return this;
}
}
export function sitecoreContextMockBuilder(itemId: string, name: string, language: string = "en-NZ"){
return new SitecoreContextMockBuilder(itemId, name, language);
}