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