欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Spartacus PageMetaService 的单元测试

发布时间:2023/12/19 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 的单元测试的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。