@eeacms/volto-slate-footnote 6.1.0 → 6.1.1

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.
package/CHANGELOG.md CHANGED
@@ -4,12 +4,29 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ ### [6.1.1](https://github.com/eea/volto-slate-footnote/compare/6.1.0...6.1.1) - 12 June 2023
8
+
9
+ #### :house: Internal changes
10
+
11
+ - chore: [JENKINS] Deprecate circularity website [valentinab25 - [`ded882a`](https://github.com/eea/volto-slate-footnote/commit/ded882a1ca1183c2ba74ff4246111123ee36e6cb)]
12
+
13
+ #### :hammer_and_wrench: Others
14
+
15
+ - test: jest should look for addons in node_modules Refs #253277 [valentinab25 - [`3e0749c`](https://github.com/eea/volto-slate-footnote/commit/3e0749cc5bd7f5810ac6fd7a3feee4df0435ee0a)]
16
+ - test: Add unit tests for utils - refs #253277 [ana-oprea - [`a709895`](https://github.com/eea/volto-slate-footnote/commit/a709895d9953742ef6d39f8d9673c06b2efe6a64)]
17
+ - test: Fix test config, coverage Refs #253277 [valentinab25 - [`dc4d6dc`](https://github.com/eea/volto-slate-footnote/commit/dc4d6dc9b39bfe2c892156f32c764153d1366486)]
18
+ - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`4f0ecee`](https://github.com/eea/volto-slate-footnote/commit/4f0ecee224d5d6604dfbb562556e45437edbb8ec)]
7
19
  ### [6.1.0](https://github.com/eea/volto-slate-footnote/compare/6.0.2...6.1.0) - 27 March 2023
8
20
 
9
21
  #### :hammer_and_wrench: Others
10
22
 
11
- - Release 6.2.0 [Alin Voinea - [`d676d92`](https://github.com/eea/volto-slate-footnote/commit/d676d9229212cb61e2db9fb412f11646ba9272ca)]
23
+ - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`23959ee`](https://github.com/eea/volto-slate-footnote/commit/23959ee43d45ec5eaa483590415a75fc58faae03)]
24
+ - Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`7aa6f34`](https://github.com/eea/volto-slate-footnote/commit/7aa6f3439953cc3d8f28875eff9fbcc24084cbc7)]
25
+ - Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`b117d15`](https://github.com/eea/volto-slate-footnote/commit/b117d15e51b3cf10717b9dd9dfef8304d46ad556)]
12
26
  - test(Jenkins): Run tests and cypress with latest canary @plone/volto [Alin Voinea - [`97ed8fb`](https://github.com/eea/volto-slate-footnote/commit/97ed8fbd92f76c2b3128b62cdc1a77611e79410a)]
27
+ - Add Sonarqube tag using cca-frontend addons list [EEA Jenkins - [`cb22f5e`](https://github.com/eea/volto-slate-footnote/commit/cb22f5e8e9d3aed0a3b4374b6d4d80c8c2bb66e1)]
28
+ - yarn 3 [Alin Voinea - [`f5bb904`](https://github.com/eea/volto-slate-footnote/commit/f5bb904eecf740ffd57dbccf9a597c99ea2dfc0c)]
29
+ - Add Sonarqube tag using demo-kitkat-frontend addons list [EEA Jenkins - [`59cf6d3`](https://github.com/eea/volto-slate-footnote/commit/59cf6d334a460e373dda3e2e28754fcdd9fb0281)]
13
30
  ### [6.0.2](https://github.com/eea/volto-slate-footnote/compare/6.0.1...6.0.2) - 16 November 2022
14
31
 
15
32
  #### :hammer_and_wrench: Others
@@ -25,27 +42,37 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
25
42
 
26
43
  #### :hammer_and_wrench: Others
27
44
 
45
+ - Add Sonarqube tag using marine-frontend addons list [EEA Jenkins - [`dc3c7de`](https://github.com/eea/volto-slate-footnote/commit/dc3c7deaa8c692689ea0cec66cf019f05f9c4e22)]
46
+ - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`133969a`](https://github.com/eea/volto-slate-footnote/commit/133969a37a6153a19af121d2f6031a70bc67cc9d)]
28
47
  ### [5.0.1](https://github.com/eea/volto-slate-footnote/compare/5.0.0...5.0.1) - 30 June 2022
29
48
 
30
49
  #### :hammer_and_wrench: Others
31
50
 
51
+ - Add Sonarqube tag using circularity-frontend addons list [EEA Jenkins - [`4d5af13`](https://github.com/eea/volto-slate-footnote/commit/4d5af1345aad9071c031f7f00efd6bc5da04541f)]
32
52
  ## [5.0.0](https://github.com/eea/volto-slate-footnote/compare/4.0.5...5.0.0) - 19 May 2022
33
53
 
34
54
  ### [4.0.5](https://github.com/eea/volto-slate-footnote/compare/4.0.4...4.0.5) - 17 May 2022
35
55
 
36
56
  #### :hammer_and_wrench: Others
37
57
 
58
+ - Add Sonarqube tag using clms-frontend addons list [EEA Jenkins - [`85a16ee`](https://github.com/eea/volto-slate-footnote/commit/85a16ee73d21d696282dc24933169d3c31383027)]
59
+ - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`418349c`](https://github.com/eea/volto-slate-footnote/commit/418349ce22d98bf5dee58130d6f1cb9f45bbaa46)]
38
60
  ### [4.0.4](https://github.com/eea/volto-slate-footnote/compare/4.0.3...4.0.4) - 3 January 2022
39
61
 
40
62
  ### [4.0.3](https://github.com/eea/volto-slate-footnote/compare/4.0.2...4.0.3) - 18 December 2021
41
63
 
42
64
  #### :hammer_and_wrench: Others
43
65
 
66
+ - Add Sonarqube tag using freshwater-frontend addons list [EEA Jenkins - [`ad06940`](https://github.com/eea/volto-slate-footnote/commit/ad0694074a06eb56ec1891256b262e9854c0303d)]
44
67
  - Refs #142010 - Optimize Volto-addons gitflow pipelines [valentinab25 - [`1081079`](https://github.com/eea/volto-slate-footnote/commit/1081079444f5ac806e9d56765c4ccf0b9e415a73)]
68
+ - Add Sonarqube tag using industry-frontend addons list [EEA Jenkins - [`307687b`](https://github.com/eea/volto-slate-footnote/commit/307687b93d966e0df5c4a3f813dbb19442d2e169)]
69
+ - Add Sonarqube tag using clms-frontend addons list [EEA Jenkins - [`0460e2a`](https://github.com/eea/volto-slate-footnote/commit/0460e2a73a4c8ede00b0c1fc3f05624eaa345a33)]
70
+ - Add Sonarqube tag using forests-frontend addons list [EEA Jenkins - [`8aecee9`](https://github.com/eea/volto-slate-footnote/commit/8aecee99f11387e4ce31825209798772d7fee060)]
45
71
  ### [4.0.2](https://github.com/eea/volto-slate-footnote/compare/4.0.1...4.0.2) - 30 September 2021
46
72
 
47
73
  #### :hammer_and_wrench: Others
48
74
 
75
+ - Add Sonarqube tag using sustainability-frontend addons list [EEA Jenkins - [`cf33efe`](https://github.com/eea/volto-slate-footnote/commit/cf33efec91b4b8d13562b8c8f660e7a78191d9e0)]
49
76
  - Remove :asDefault dependency from volto-slate [Alin Voinea - [`13dad5e`](https://github.com/eea/volto-slate-footnote/commit/13dad5ed23043fa7a24682e1ac6addc86632bfe0)]
50
77
  ### [4.0.1](https://github.com/eea/volto-slate-footnote/compare/4.0.0...4.0.1) - 29 September 2021
51
78
 
@@ -53,6 +80,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
53
80
 
54
81
  #### :hammer_and_wrench: Others
55
82
 
83
+ - Add Sonarqube tag using climate-energy-frontend addons list [EEA Jenkins - [`80a159b`](https://github.com/eea/volto-slate-footnote/commit/80a159bb67698cddedadc494e7ae2da32a96faea)]
56
84
  ### [3.2.0](https://github.com/eea/volto-slate-footnote/compare/3.1.1...3.2.0) - 13 September 2021
57
85
 
58
86
  #### :hammer_and_wrench: Others
@@ -65,6 +93,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
65
93
  - Remove console.log [Alin Voinea - [`b5d83e7`](https://github.com/eea/volto-slate-footnote/commit/b5d83e7c13240151f602d122ecf09ba9b8e335f3)]
66
94
  - Fix slate json field default value in DX layout [Alin Voinea - [`f2805bb`](https://github.com/eea/volto-slate-footnote/commit/f2805bbc15c51ebd914ee5f4eb9dd34ef32e095b)]
67
95
  - Fix cypress api_url [Alin Voinea - [`6a4966a`](https://github.com/eea/volto-slate-footnote/commit/6a4966a2f92e932e1d0df35351989cda535f15c8)]
96
+ - Add Sonarqube tag using ims-frontend addons list [EEA Jenkins - [`aed3984`](https://github.com/eea/volto-slate-footnote/commit/aed39840ecd467689eaf0adb352bd00ce95bdbbe)]
68
97
  ### [3.1.0](https://github.com/eea/volto-slate-footnote/compare/3.0.0...3.1.0) - 9 September 2021
69
98
 
70
99
  #### :hammer_and_wrench: Others
@@ -85,6 +114,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
85
114
  - Bump version to 2.4.0 [Alin Voinea - [`bef0d34`](https://github.com/eea/volto-slate-footnote/commit/bef0d34c2b9c20915578ffaefb4fd30cbf42f0a1)]
86
115
  - Fix Slate point from DOM crash [Alin Voinea - [`c852f79`](https://github.com/eea/volto-slate-footnote/commit/c852f7987ffe8db433235b70792002d40ade690f)]
87
116
  - Fix crash on copy&paste beforeInsert condition [Alin Voinea - [`85172cf`](https://github.com/eea/volto-slate-footnote/commit/85172cff3e2ea95a86d4b4fb452f3c0287b80e8f)]
117
+ - Add Sonarqube tag using frontend addons list [EEA Jenkins - [`b471c41`](https://github.com/eea/volto-slate-footnote/commit/b471c418d198b1bde95acfe0b256f642bacc6865)]
88
118
  ### [2.3.1](https://github.com/eea/volto-slate-footnote/compare/2.3.0...2.3.1) - 25 June 2021
89
119
 
90
120
  ### [2.3.0](https://github.com/eea/volto-slate-footnote/compare/2.2.2...2.3.0) - 12 June 2021
package/Jenkinsfile CHANGED
@@ -4,7 +4,7 @@ pipeline {
4
4
  environment {
5
5
  GIT_NAME = "volto-slate-footnote"
6
6
  NAMESPACE = "@eeacms"
7
- SONARQUBE_TAGS = "volto.eea.europa.eu,biodiversity.europa.eu,www.eea.europa.eu-ims,climate-energy.eea.europa.eu,sustainability.eionet.europa.eu,forest.eea.europa.eu,clms.land.copernicus.eu,industry.eea.europa.eu,water.europa.eu-freshwater,demo-www.eea.europa.eu,clmsdemo.devel6cph.eea.europa.eu,circularity.eea.europa.eu,prod-www.eea.europa.eu,water.europa.eu-marine,demo-kitkat.dev2aws.eea.europa.eu,climate-adapt.eea.europa.eu,climate-advisory-board.devel4cph.eea.europa.eu,climate-advisory-board.europa.eu,www.eea.europa.eu-en"
7
+ SONARQUBE_TAGS = "volto.eea.europa.eu,biodiversity.europa.eu,www.eea.europa.eu-ims,climate-energy.eea.europa.eu,sustainability.eionet.europa.eu,forest.eea.europa.eu,clms.land.copernicus.eu,industry.eea.europa.eu,water.europa.eu-freshwater,demo-www.eea.europa.eu,clmsdemo.devel6cph.eea.europa.eu,water.europa.eu-marine,climate-adapt.eea.europa.eu,climate-advisory-board.devel4cph.eea.europa.eu,climate-advisory-board.europa.eu,www.eea.europa.eu-en"
8
8
  DEPENDENCIES = ""
9
9
  VOLTO = ""
10
10
  }
@@ -188,6 +188,7 @@ pipeline {
188
188
  def nodeJS = tool 'NodeJS';
189
189
  withSonarQubeEnv('Sonarqube') {
190
190
  sh '''sed -i "s#/opt/frontend/my-volto-project/src/addons/${GIT_NAME}/##g" xunit-reports/coverage/lcov.info'''
191
+ sh '''sed -i "s#src/addons/${GIT_NAME}/##g" xunit-reports/coverage/lcov.info'''
191
192
  sh "export PATH=${scannerHome}/bin:${nodeJS}/bin:$PATH; sonar-scanner -Dsonar.javascript.lcov.reportPaths=./xunit-reports/coverage/lcov.info,./cypress-coverage/coverage/lcov.info -Dsonar.sources=./src -Dsonar.projectKey=$GIT_NAME-$BRANCH_NAME -Dsonar.projectVersion=$BRANCH_NAME-$BUILD_NUMBER"
192
193
  sh '''try=2; while [ \$try -gt 0 ]; do curl -s -XPOST -u "${SONAR_AUTH_TOKEN}:" "${SONAR_HOST_URL}api/project_tags/set?project=${GIT_NAME}-${BRANCH_NAME}&tags=${SONARQUBE_TAGS},${BRANCH_NAME}" > set_tags_result; if [ \$(grep -ic error set_tags_result ) -eq 0 ]; then try=0; else cat set_tags_result; echo "... Will retry"; sleep 60; try=\$(( \$try - 1 )); fi; done'''
193
194
  }
@@ -5,19 +5,19 @@ module.exports = {
5
5
  '!src/**/*.d.ts',
6
6
  ],
7
7
  moduleNameMapper: {
8
+ '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
8
9
  '@plone/volto/cypress': '<rootDir>/node_modules/@plone/volto/cypress',
9
10
  '@plone/volto/babel': '<rootDir>/node_modules/@plone/volto/babel',
10
11
  '@plone/volto/(.*)$': '<rootDir>/node_modules/@plone/volto/src/$1',
11
12
  '@package/(.*)$': '<rootDir>/src/$1',
12
13
  '@root/(.*)$': '<rootDir>/src/$1',
13
14
  '@plone/volto-quanta/(.*)$': '<rootDir>/src/addons/volto-quanta/src/$1',
14
- '@eeacms/(.*?)/(.*)$': '<rootDir>/src/addons/$1/src/$2',
15
+ '@eeacms/(.*?)/(.*)$': '<rootDir>/node_modules/@eeacms/$1/src/$2',
15
16
  '@plone/volto-slate':
16
17
  '<rootDir>/node_modules/@plone/volto/packages/volto-slate/src',
17
18
  '~/(.*)$': '<rootDir>/src/$1',
18
19
  'load-volto-addons':
19
20
  '<rootDir>/node_modules/@plone/volto/jest-addons-loader.js',
20
- '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
21
21
  },
22
22
  transform: {
23
23
  '^.+\\.js(x)?$': 'babel-jest',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-slate-footnote",
3
- "version": "6.1.0",
3
+ "version": "6.1.1",
4
4
  "description": "volto-slate-footnote: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -0,0 +1,213 @@
1
+ import {
2
+ makeFootnote,
3
+ openAccordionIfContainsFootnoteReference,
4
+ getAllBlocksAndSlateFields,
5
+ } from './utils';
6
+ import { getAllBlocks } from '@plone/volto-slate/utils';
7
+
8
+ jest.mock('@plone/volto-slate/utils', () => ({
9
+ getAllBlocks: jest.fn(),
10
+ }));
11
+
12
+ describe('makeFootnote', () => {
13
+ it('should remove xml version string from footnote', () => {
14
+ const xmlString = '<?xml version="1.0"?>Test text';
15
+ const expectedResult = 'Test text';
16
+ expect(makeFootnote(xmlString)).toEqual(expectedResult);
17
+ });
18
+
19
+ it('should return empty string when footnote is null or undefined', () => {
20
+ expect(makeFootnote(null)).toEqual('');
21
+ expect(makeFootnote(undefined)).toEqual('');
22
+ });
23
+ });
24
+
25
+ describe('openAccordionIfContainsFootnoteReference', () => {
26
+ it('should open accordion if it contains footnote reference', () => {
27
+ document.body.innerHTML = `
28
+ <div class="accordion">
29
+ <div class="title">Accordion</div>
30
+ <div id="footnote">Footnote</div>
31
+ </div>
32
+ `;
33
+
34
+ const title = document.querySelector('.title');
35
+ title.click = jest.fn();
36
+
37
+ openAccordionIfContainsFootnoteReference('#footnote');
38
+
39
+ expect(title.click).toHaveBeenCalled();
40
+ });
41
+
42
+ it('should not do anything if accordion does not contain footnote reference', () => {
43
+ document.body.innerHTML = `
44
+ <div class="accordion">
45
+ <div class="title">Accordion</div>
46
+ </div>
47
+ `;
48
+
49
+ const title = document.querySelector('.title');
50
+ title.click = jest.fn();
51
+
52
+ openAccordionIfContainsFootnoteReference('#footnote');
53
+
54
+ expect(title.click).not.toHaveBeenCalled();
55
+ });
56
+ });
57
+
58
+ describe('getAllBlocksAndSlateFields', () => {
59
+ afterEach(() => {
60
+ jest.clearAllMocks();
61
+ });
62
+
63
+ it('handles metadataSection correctly', () => {
64
+ const properties = { '1': ['test'] };
65
+ const blocks = [
66
+ {
67
+ '@type': 'metadataSection',
68
+ fields: [
69
+ { field: { widget: 'slate', id: '1' } },
70
+ { field: { widget: 'other', id: '2' } },
71
+ ],
72
+ },
73
+ ];
74
+ getAllBlocks.mockReturnValue(blocks);
75
+
76
+ const expected = [{ '@type': 'slate', id: '1', value: ['test'] }];
77
+ const result = getAllBlocksAndSlateFields(properties);
78
+
79
+ expect(result).toEqual(expected);
80
+ });
81
+
82
+ it('handles metadataSection correctly with no properties', () => {
83
+ const properties = {};
84
+ const blocks = [
85
+ {
86
+ '@type': 'metadataSection',
87
+ fields: [
88
+ { field: { widget: 'slate', id: '1' } },
89
+ { field: { widget: 'other', id: '2' } },
90
+ ],
91
+ },
92
+ ];
93
+ getAllBlocks.mockReturnValue(blocks);
94
+
95
+ const result = getAllBlocksAndSlateFields(properties);
96
+
97
+ expect(result).toEqual([]);
98
+ });
99
+
100
+ it('handles metadata correctly', () => {
101
+ const properties = { '1': ['metadata test'] };
102
+ const blocks = [
103
+ {
104
+ '@type': 'metadata',
105
+ data: { id: '1', widget: 'slate' },
106
+ },
107
+ ];
108
+ getAllBlocks.mockReturnValue(blocks);
109
+
110
+ const expected = [{ '@type': 'slate', id: '1', value: ['metadata test'] }];
111
+ const result = getAllBlocksAndSlateFields(properties);
112
+
113
+ expect(result).toEqual(expected);
114
+ });
115
+
116
+ it('handles metadata correctly with no properties', () => {
117
+ const properties = {};
118
+ const blocks = [
119
+ {
120
+ '@type': 'metadata',
121
+ data: { id: '1', widget: 'slate' },
122
+ },
123
+ ];
124
+ getAllBlocks.mockReturnValue(blocks);
125
+
126
+ const expected = [{ '@type': 'slate', id: '1', value: null }];
127
+ const result = getAllBlocksAndSlateFields(properties);
128
+
129
+ expect(result).toEqual(expected);
130
+ });
131
+
132
+ it('handles metadata correctly with no slate widgets', () => {
133
+ const properties = {};
134
+ const blocks = [
135
+ {
136
+ '@type': 'metadata',
137
+ data: { id: '1', widget: 'test' },
138
+ },
139
+ ];
140
+ getAllBlocks.mockReturnValue(blocks);
141
+
142
+ const expected = [];
143
+ const result = getAllBlocksAndSlateFields(properties);
144
+
145
+ expect(result).toEqual(expected);
146
+ });
147
+
148
+ it('handles slateTable correctly', () => {
149
+ const properties = {};
150
+ const blocks = [
151
+ {
152
+ '@type': 'slateTable',
153
+ table: {
154
+ rows: [{ cells: [{ cell1: '1' }, { cell2: '2' }] }],
155
+ },
156
+ },
157
+ ];
158
+ getAllBlocks.mockReturnValue(blocks);
159
+
160
+ const expected = [
161
+ { '@type': 'slate', cell1: '1' },
162
+ { '@type': 'slate', cell2: '2' },
163
+ ];
164
+ const result = getAllBlocksAndSlateFields(properties);
165
+
166
+ expect(result).toEqual(expected);
167
+ });
168
+
169
+ it('handles slateTable correctly with no rows', () => {
170
+ const properties = {};
171
+ const blocks = [
172
+ {
173
+ '@type': 'slateTable',
174
+ table: {},
175
+ },
176
+ ];
177
+ getAllBlocks.mockReturnValue(blocks);
178
+
179
+ const expected = [];
180
+ const result = getAllBlocksAndSlateFields(properties);
181
+
182
+ expect(result).toEqual(expected);
183
+ });
184
+
185
+ it('handles slateTable correctly with no cells', () => {
186
+ const properties = {};
187
+ const blocks = [
188
+ {
189
+ '@type': 'slateTable',
190
+ table: {
191
+ rows: [{ cells: undefined }],
192
+ },
193
+ },
194
+ ];
195
+ getAllBlocks.mockReturnValue(blocks);
196
+
197
+ const expected = [];
198
+ const result = getAllBlocksAndSlateFields(properties);
199
+
200
+ expect(result).toEqual(expected);
201
+ });
202
+
203
+ it('handles defaultOperation correctly', () => {
204
+ const properties = {};
205
+ const blocks = [{ block: '1', '@type': 'testType' }];
206
+ getAllBlocks.mockReturnValue(blocks);
207
+
208
+ const expected = [blocks[0]];
209
+ const result = getAllBlocksAndSlateFields(properties);
210
+
211
+ expect(result).toEqual(expected);
212
+ });
213
+ });