@defra/forms-engine-plugin 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.server/server/index.js +0 -4
  2. package/.server/server/index.js.map +1 -1
  3. package/.server/server/plugins/engine/helpers.js +3 -0
  4. package/.server/server/plugins/engine/helpers.js.map +1 -1
  5. package/.server/server/plugins/engine/index.js +27 -1
  6. package/.server/server/plugins/engine/index.js.map +1 -1
  7. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js +2 -4
  8. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js.map +1 -1
  9. package/.server/server/plugins/engine/pageControllers/QuestionPageController.js +4 -10
  10. package/.server/server/plugins/engine/pageControllers/QuestionPageController.js.map +1 -1
  11. package/.server/server/plugins/engine/pageControllers/StatusPageController.js +2 -3
  12. package/.server/server/plugins/engine/pageControllers/StatusPageController.js.map +1 -1
  13. package/.server/server/plugins/engine/pageControllers/SummaryPageController.js +2 -4
  14. package/.server/server/plugins/engine/pageControllers/SummaryPageController.js.map +1 -1
  15. package/.server/server/plugins/engine/plugin.js +65 -6
  16. package/.server/server/plugins/engine/plugin.js.map +1 -1
  17. package/.server/server/plugins/engine/types.js.map +1 -1
  18. package/.server/server/{views → plugins/engine/views}/components/service-banner/template.test.js +1 -1
  19. package/.server/server/plugins/engine/views/components/service-banner/template.test.js.map +1 -0
  20. package/.server/server/{views → plugins/engine/views}/components/tag-env/template.test.js +1 -1
  21. package/.server/server/plugins/engine/views/components/tag-env/template.test.js.map +1 -0
  22. package/.server/server/services/cacheService.js +5 -2
  23. package/.server/server/services/cacheService.js.map +1 -1
  24. package/.server/typings/hapi/index.d.js.map +1 -1
  25. package/README.md +215 -4
  26. package/package.json +1 -2
  27. package/src/server/index.ts +0 -5
  28. package/src/server/plugins/engine/helpers.ts +6 -1
  29. package/src/server/plugins/engine/index.ts +41 -1
  30. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +20 -12
  31. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +2 -1
  32. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +7 -3
  33. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +2 -1
  34. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +3 -2
  35. package/src/server/plugins/engine/plugin.ts +84 -4
  36. package/src/server/plugins/engine/types.ts +2 -0
  37. package/src/server/services/cacheService.test.ts +1 -0
  38. package/src/server/services/cacheService.ts +9 -2
  39. package/src/typings/hapi/index.d.ts +3 -11
  40. package/.server/server/views/components/service-banner/template.test.js.map +0 -1
  41. package/.server/server/views/components/tag-env/template.test.js.map +0 -1
  42. /package/.server/server/{views → plugins/engine/views}/components/debug/macro.njk +0 -0
  43. /package/.server/server/{views → plugins/engine/views}/components/debug/template.njk +0 -0
  44. /package/.server/server/{views → plugins/engine/views}/components/service-banner/macro.njk +0 -0
  45. /package/.server/server/{views → plugins/engine/views}/components/service-banner/template.njk +0 -0
  46. /package/.server/server/{views → plugins/engine/views}/components/tag-env/macro.njk +0 -0
  47. /package/.server/server/{views → plugins/engine/views}/components/tag-env/template.njk +0 -0
  48. /package/.server/server/{views → plugins/engine/views}/confirmation.html +0 -0
  49. /package/.server/server/{views → plugins/engine/views}/layout.html +0 -0
  50. /package/.server/server/{views → plugins/engine/views}/summary.html +0 -0
  51. /package/src/server/{views → plugins/engine/views}/components/debug/macro.njk +0 -0
  52. /package/src/server/{views → plugins/engine/views}/components/debug/template.njk +0 -0
  53. /package/src/server/{views → plugins/engine/views}/components/service-banner/macro.njk +0 -0
  54. /package/src/server/{views → plugins/engine/views}/components/service-banner/template.njk +0 -0
  55. /package/src/server/{views → plugins/engine/views}/components/service-banner/template.test.js +0 -0
  56. /package/src/server/{views → plugins/engine/views}/components/tag-env/macro.njk +0 -0
  57. /package/src/server/{views → plugins/engine/views}/components/tag-env/template.njk +0 -0
  58. /package/src/server/{views → plugins/engine/views}/components/tag-env/template.test.js +0 -0
  59. /package/src/server/{views → plugins/engine/views}/confirmation.html +0 -0
  60. /package/src/server/{views → plugins/engine/views}/layout.html +0 -0
  61. /package/src/server/{views → plugins/engine/views}/summary.html +0 -0
@@ -27,8 +27,15 @@ export class CacheService {
27
27
  cache
28
28
  logger: Server['logger']
29
29
 
30
- constructor(server: Server) {
31
- this.cache = server.cache({ cache: 'session', segment: 'formSubmission' })
30
+ constructor(server: Server, cacheName?: string) {
31
+ if (!cacheName) {
32
+ server.log(
33
+ 'warn',
34
+ 'You are using the default hapi cache. Please provide a cache name in plugin registration options.'
35
+ )
36
+ }
37
+
38
+ this.cache = server.cache({ cache: cacheName, segment: 'formSubmission' })
32
39
  this.logger = server.logger
33
40
  }
34
41
 
@@ -18,6 +18,9 @@ declare module '@hapi/hapi' {
18
18
  crumb: {
19
19
  generate?: (request: Request | FormRequest | FormRequestPayload) => string
20
20
  }
21
+ 'forms-engine-plugin': {
22
+ cacheService: CacheService
23
+ }
21
24
  }
22
25
 
23
26
  interface PluginsStates {
@@ -49,17 +52,6 @@ declare module '@hapi/hapi' {
49
52
  }
50
53
  }
51
54
 
52
- declare module '@hapipal/schmervice' {
53
- interface RegisteredServices {
54
- cacheService: CacheService
55
- }
56
-
57
- interface SchmerviceDecorator {
58
- (all?: boolean): RegisteredServices
59
- (namespace?: string[]): RegisteredServices
60
- }
61
- }
62
-
63
55
  declare module '@hapi/scooter' {
64
56
  declare const hapiScooter: {
65
57
  plugin: Plugin
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.test.js","names":["renderMacro","describe","$component","$content","$text","beforeEach","container","document","params","title","text","getByRole","querySelector","it","expect","toBeInTheDocument","toHaveClass","toContainElement","toHaveAttribute","toHaveAccessibleName","toHaveTextContent"],"sources":["../../../../../src/server/views/components/service-banner/template.test.js"],"sourcesContent":["import { renderMacro } from '~/test/helpers/component-helpers.js'\n\ndescribe('Service banner component', () => {\n let $component = /** @type {HTMLElement | null} */ (null)\n let $content = /** @type {HTMLElement | null} */ (null)\n let $text = /** @type {HTMLElement | null} */ (null)\n\n beforeEach(() => {\n const { container, document } = renderMacro(\n 'appServiceBanner',\n 'components/service-banner/macro.njk',\n {\n params: {\n title: 'Service status',\n text: 'This is a service status message'\n }\n }\n )\n\n $component = container.getByRole('complementary')\n $content = document.querySelector('.app-service-banner__content')\n $text = document.querySelector('.app-service-banner__text')\n })\n\n it('should render contents', () => {\n expect($component).toBeInTheDocument()\n expect($component).toHaveClass('app-service-banner')\n expect($component).toContainElement($content)\n expect($content).toContainElement($text)\n })\n\n it('should announce service message', () => {\n expect($component).toHaveAttribute('aria-live', 'polite')\n })\n\n it('should have accessible name', () => {\n expect($component).toHaveAccessibleName('Service status')\n })\n\n it('should have text content', () => {\n expect($text).toHaveTextContent('This is a service status message')\n })\n})\n"],"mappings":"AAAA,SAASA,WAAW;AAEpBC,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzC,IAAIC,UAAU,GAAG,iCAAmC,IAAK;EACzD,IAAIC,QAAQ,GAAG,iCAAmC,IAAK;EACvD,IAAIC,KAAK,GAAG,iCAAmC,IAAK;EAEpDC,UAAU,CAAC,MAAM;IACf,MAAM;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAGP,WAAW,CACzC,kBAAkB,EAClB,qCAAqC,EACrC;MACEQ,MAAM,EAAE;QACNC,KAAK,EAAE,gBAAgB;QACvBC,IAAI,EAAE;MACR;IACF,CACF,CAAC;IAEDR,UAAU,GAAGI,SAAS,CAACK,SAAS,CAAC,eAAe,CAAC;IACjDR,QAAQ,GAAGI,QAAQ,CAACK,aAAa,CAAC,8BAA8B,CAAC;IACjER,KAAK,GAAGG,QAAQ,CAACK,aAAa,CAAC,2BAA2B,CAAC;EAC7D,CAAC,CAAC;EAEFC,EAAE,CAAC,wBAAwB,EAAE,MAAM;IACjCC,MAAM,CAACZ,UAAU,CAAC,CAACa,iBAAiB,CAAC,CAAC;IACtCD,MAAM,CAACZ,UAAU,CAAC,CAACc,WAAW,CAAC,oBAAoB,CAAC;IACpDF,MAAM,CAACZ,UAAU,CAAC,CAACe,gBAAgB,CAACd,QAAQ,CAAC;IAC7CW,MAAM,CAACX,QAAQ,CAAC,CAACc,gBAAgB,CAACb,KAAK,CAAC;EAC1C,CAAC,CAAC;EAEFS,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1CC,MAAM,CAACZ,UAAU,CAAC,CAACgB,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;EAC3D,CAAC,CAAC;EAEFL,EAAE,CAAC,6BAA6B,EAAE,MAAM;IACtCC,MAAM,CAACZ,UAAU,CAAC,CAACiB,oBAAoB,CAAC,gBAAgB,CAAC;EAC3D,CAAC,CAAC;EAEFN,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACnCC,MAAM,CAACV,KAAK,CAAC,CAACgB,iBAAiB,CAAC,kCAAkC,CAAC;EACrE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.test.js","names":["renderMacro","describe","each","text","env","colour","$component","beforeEach","container","params","getByRole","it","expect","toBeInTheDocument","toHaveClass","toHaveTextContent"],"sources":["../../../../../src/server/views/components/tag-env/template.test.js"],"sourcesContent":["import { renderMacro } from '~/test/helpers/component-helpers.js'\n\ndescribe('Tag environment component', () => {\n describe.each([\n {\n text: 'Local',\n env: 'local',\n colour: 'green'\n },\n {\n text: 'Development',\n env: 'dev',\n colour: 'grey'\n },\n {\n text: 'Test',\n env: 'test',\n colour: 'yellow'\n },\n {\n text: 'External test',\n env: 'ext-test',\n colour: 'yellow'\n },\n {\n text: 'Performance test',\n env: 'perf-test',\n colour: 'yellow'\n },\n {\n text: 'Production',\n env: 'prod',\n colour: 'red'\n },\n {\n text: 'Unknown environment',\n env: 'unknown-environment',\n colour: 'grey'\n }\n ])('Environment: $text', ({ text, env, colour }) => {\n let $component = /** @type {HTMLElement | null} */ (null)\n\n beforeEach(() => {\n const { container } = renderMacro(\n 'appTagEnv',\n 'components/tag-env/macro.njk',\n { params: { env } }\n )\n\n $component = container.getByRole('strong')\n })\n\n it('should render contents', () => {\n expect($component).toBeInTheDocument()\n expect($component).toHaveClass('govuk-tag')\n })\n\n it('should have text content', () => {\n expect($component).toHaveTextContent(text)\n })\n\n it('should use environment colour', () => {\n expect($component).toHaveClass(`govuk-tag--${colour}`)\n })\n })\n})\n"],"mappings":"AAAA,SAASA,WAAW;AAEpBC,QAAQ,CAAC,2BAA2B,EAAE,MAAM;EAC1CA,QAAQ,CAACC,IAAI,CAAC,CACZ;IACEC,IAAI,EAAE,OAAO;IACbC,GAAG,EAAE,OAAO;IACZC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,aAAa;IACnBC,GAAG,EAAE,KAAK;IACVC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,MAAM;IACZC,GAAG,EAAE,MAAM;IACXC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,eAAe;IACrBC,GAAG,EAAE,UAAU;IACfC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,kBAAkB;IACxBC,GAAG,EAAE,WAAW;IAChBC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,YAAY;IAClBC,GAAG,EAAE,MAAM;IACXC,MAAM,EAAE;EACV,CAAC,EACD;IACEF,IAAI,EAAE,qBAAqB;IAC3BC,GAAG,EAAE,qBAAqB;IAC1BC,MAAM,EAAE;EACV,CAAC,CACF,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAAEF,IAAI;IAAEC,GAAG;IAAEC;EAAO,CAAC,KAAK;IAClD,IAAIC,UAAU,GAAG,iCAAmC,IAAK;IAEzDC,UAAU,CAAC,MAAM;MACf,MAAM;QAAEC;MAAU,CAAC,GAAGR,WAAW,CAC/B,WAAW,EACX,8BAA8B,EAC9B;QAAES,MAAM,EAAE;UAAEL;QAAI;MAAE,CACpB,CAAC;MAEDE,UAAU,GAAGE,SAAS,CAACE,SAAS,CAAC,QAAQ,CAAC;IAC5C,CAAC,CAAC;IAEFC,EAAE,CAAC,wBAAwB,EAAE,MAAM;MACjCC,MAAM,CAACN,UAAU,CAAC,CAACO,iBAAiB,CAAC,CAAC;MACtCD,MAAM,CAACN,UAAU,CAAC,CAACQ,WAAW,CAAC,WAAW,CAAC;IAC7C,CAAC,CAAC;IAEFH,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnCC,MAAM,CAACN,UAAU,CAAC,CAACS,iBAAiB,CAACZ,IAAI,CAAC;IAC5C,CAAC,CAAC;IAEFQ,EAAE,CAAC,+BAA+B,EAAE,MAAM;MACxCC,MAAM,CAACN,UAAU,CAAC,CAACQ,WAAW,CAAC,cAAcT,MAAM,EAAE,CAAC;IACxD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}