SAP Spartacus PageMetaService 的单元测试
生活随笔
收集整理的這篇文章主要介紹了
SAP Spartacus PageMetaService 的单元测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
test.js:
const FILE = ['./cms/facade/page-meta.service.spec.ts'];context.keys().filter( name => !!FILE.includes(name)).map(context);PageMetaService的作用是,解析到底有哪些 PageResolver 需要執行,并調度這些 PageResolver,執行對應方法。
這些 Page Resolver 的單元測試,位于文件 page-meta.service.spec.ts 內:
Page resolver 的實現,位于 page 文件夾內:
const PageMetaResolvers: PageMetaConfig = {pageMeta: {resolvers: [{property: 'title',method: 'resolveTitle',},{property: 'heading',method: 'resolveHeading',},{property: 'description',method: 'resolveDescription',disabledInCsr: true,},{property: 'image',method: 'resolveImage',disabledInCsr: true,},{property: 'breadcrumbs',method: 'resolveBreadcrumbs',},{property: 'robots',method: 'resolveRobots',disabledInCsr: true,},],enableInDevMode: true,}, };PageMetaResolver 是一個 abstract class:
PageWithAllResolvers:實現了很多接口的類
可以使用 disabledInCsr 禁掉某個 resolver:
如果在開發模式下,不應該執行被禁用的 resolver:
service 就是 PageMetaService,執行 getMeta 并且 subscribe 之后,會觸發 page resolver 的執行。
先要執行該 Service 類的 CMS service,調用 getCurrentPage 拿到當前 CMS 頁面類型,再根據頁面類型拿到負責的 Meta Resolver,最后調用 Resolver 進行解析。
這就是 determine 出來的解析器:
看注釋:在 SSR 模式下,總是執行:
要執行這三個方法:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Spartacus PageMetaService 的单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: power在电脑中是什么意思
- 下一篇: SAP Spartacus PageMe