UNPKG

@jss-rule-engine/core

Version:

Rule engine for Sitecore JSS

75 lines (61 loc) 2.09 kB
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); }