Skip to content

Commit

Permalink
Merge pull request #33 from eea/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
avoinea authored Jun 12, 2023
2 parents ad98da8 + ea41596 commit 9b2299a
Show file tree
Hide file tree
Showing 9 changed files with 255 additions and 7 deletions.
13 changes: 10 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,18 @@ All notable changes to this project will be documented in this file. Dates are d

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

### [6.1.1](https://github.com/eea/volto-group-block/compare/6.1.0...6.1.1) - 22 May 2023
### [6.1.2](https://github.com/eea/volto-group-block/compare/6.1.1...6.1.2) - 12 June 2023

#### :house: Internal changes

#### :rocket: New Features
- chore: [JENKINS] Deprecate circularity website [valentinab25 - [`ad30e83`](https://github.com/eea/volto-group-block/commit/ad30e832bb869b67dc4e64ed99590b51cb80ab75)]

- feat: add support for toc [Miu Razvan - [`0c4568b`](https://github.com/eea/volto-group-block/commit/0c4568b816dcfa55820f45f796f115fcf2306dfa)]
#### :hammer_and_wrench: Others

- test: jest should look for addons in node_modules Refs #253277 [valentinab25 - [`4352c3a`](https://github.com/eea/volto-group-block/commit/4352c3afb80d6f1cbfca06b27abd11e156f1c216)]
- test: Add unit tests for View, Edit, EditBlockWrapper - refs #253277 [ana-oprea - [`2f7e7ac`](https://github.com/eea/volto-group-block/commit/2f7e7ac2c9cf7654f5a0b6b123e7589364ba13c2)]
- test: Fix test config, coverage Refs #253277 [valentinab25 - [`fa46d74`](https://github.com/eea/volto-group-block/commit/fa46d741f4ac393eb7123b09a38b774192550f95)]
### [6.1.1](https://github.com/eea/volto-group-block/compare/6.1.0...6.1.1) - 22 May 2023

### [6.1.0](https://github.com/eea/volto-group-block/compare/6.0.0...6.1.0) - 4 April 2023

Expand Down
3 changes: 2 additions & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pipeline {
environment {
GIT_NAME = "volto-group-block"
NAMESPACE = "@eeacms"
SONARQUBE_TAGS = "volto.eea.europa.eu,forest.eea.europa.eu,www.eea.europa.eu-ims,climate-energy.eea.europa.eu,sustainability.eionet.europa.eu,biodiversity.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,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"
SONARQUBE_TAGS = "volto.eea.europa.eu,forest.eea.europa.eu,www.eea.europa.eu-ims,climate-energy.eea.europa.eu,sustainability.eionet.europa.eu,biodiversity.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"
DEPENDENCIES = ""
VOLTO = ""
}
Expand Down Expand Up @@ -188,6 +188,7 @@ pipeline {
def nodeJS = tool 'NodeJS';
withSonarQubeEnv('Sonarqube') {
sh '''sed -i "s#/opt/frontend/my-volto-project/src/addons/${GIT_NAME}/##g" xunit-reports/coverage/lcov.info'''
sh '''sed -i "s#src/addons/${GIT_NAME}/##g" xunit-reports/coverage/lcov.info'''
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"
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'''
}
Expand Down
4 changes: 2 additions & 2 deletions jest-addon.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ module.exports = {
'!src/**/*.d.ts',
],
moduleNameMapper: {
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
'@plone/volto/cypress': '<rootDir>/node_modules/@plone/volto/cypress',
'@plone/volto/babel': '<rootDir>/node_modules/@plone/volto/babel',
'@plone/volto/(.*)$': '<rootDir>/node_modules/@plone/volto/src/$1',
'@package/(.*)$': '<rootDir>/src/$1',
'@root/(.*)$': '<rootDir>/src/$1',
'@plone/volto-quanta/(.*)$': '<rootDir>/src/addons/volto-quanta/src/$1',
'@eeacms/(.*?)/(.*)$': '<rootDir>/src/addons/$1/src/$2',
'@eeacms/(.*?)/(.*)$': '<rootDir>/node_modules/@eeacms/$1/src/$2',
'@plone/volto-slate':
'<rootDir>/node_modules/@plone/volto/packages/volto-slate/src',
'~/(.*)$': '<rootDir>/src/$1',
'load-volto-addons':
'<rootDir>/node_modules/@plone/volto/jest-addons-loader.js',
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
},
transform: {
'^.+\\.js(x)?$': 'babel-jest',
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@eeacms/volto-group-block",
"version": "6.1.1",
"version": "6.1.2",
"description": "volto-group-block: Volto block to be used to group other blocks",
"main": "src/index.js",
"author": "European Environment Agency: IDM2 A-Team",
Expand Down
79 changes: 79 additions & 0 deletions src/components/manage/Blocks/Group/Edit.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import React from 'react';
import Edit from './Edit';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-intl-redux';
import thunk from 'redux-thunk';
import renderer from 'react-test-renderer';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom/extend-expect';

const mockStore = configureStore([thunk]);
const store = mockStore({
intl: {
locale: 'en',
messages: {},
},
});

describe('Edit', () => {
const onChangeBlock = jest.fn();
const onChangeField = jest.fn();
const mockBlockNode = { current: {} };
const props = {
block: 'testBlock',
data: {
data: {
blocks: {
block1: {
type: 'test',
data: {
value: 'Test',
},
},
},
blocks_layout: {
items: ['block1'],
},
},
},
onChangeBlock,
onChangeField,
pathname: '/',
selected: true,
manage: true,
};

it('should render without crashing', () => {
const component = renderer.create(
<Provider store={store}>
<Edit {...props} />
</Provider>,
);

const json = component.toJSON();
expect(json).toMatchSnapshot();
});

it('renders without crashing', () => {
const { getByRole } = render(
<Provider store={store}>
<Edit {...props} />
</Provider>,
);
expect(getByRole('presentation')).toBeInTheDocument();
});

it('should call ArrowUp keydown', () => {
const mockOnFocusPreviousBlock = jest.fn();
const { getByRole } = render(
<Provider store={store}>
<Edit
{...props}
onFocusPreviousBlock={mockOnFocusPreviousBlock}
blockNode={mockBlockNode}
/>
</Provider>,
);
fireEvent.keyDown(getByRole('presentation'), { key: 'ArrowUp', code: 38 });
});
});
58 changes: 58 additions & 0 deletions src/components/manage/Blocks/Group/EditBlockWrapper.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import React from 'react';
import { fireEvent, render } from '@testing-library/react';
import { Provider } from 'react-intl-redux';
import EditBlockWrapper from './EditBlockWrapper';
import configureStore from 'redux-mock-store';
import '@testing-library/jest-dom/extend-expect';

const mockDragInfo = {
innerRef: {
current: {
childMethod: jest.fn(),
},
},
draggableProps: {},
dragHandleProps: {},
};

const mockStore = configureStore();
const store = mockStore({
intl: {
locale: 'en',
messages: {},
},
});

describe('EditBlockWrapper', () => {
const mockBlockProps = {
allowedBlocks: [],
block: 'mockBlock',
data: {},
onSelectBlock: jest.fn(),
onDeleteBlock: jest.fn(),
onMutateBlock: jest.fn(),
onInsertBlock: jest.fn(),
selected: true,
};

it('renders children', () => {
const { getByText } = render(
<Provider store={store}>
<EditBlockWrapper blockProps={mockBlockProps} draginfo={mockDragInfo}>
<div>Test child</div>
</EditBlockWrapper>
</Provider>,
);
expect(getByText('Test child')).toBeInTheDocument();
});

it('calls onDeleteBlock when delete button is clicked', () => {
const { getByTitle } = render(
<Provider store={store}>
<EditBlockWrapper blockProps={mockBlockProps} draginfo={mockDragInfo} />
</Provider>,
);
fireEvent.click(getByTitle('Remove block'));
expect(mockBlockProps.onDeleteBlock).toHaveBeenCalledWith('mockBlock');
});
});
68 changes: 68 additions & 0 deletions src/components/manage/Blocks/Group/View.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import React from 'react';
import View from './View';
import renderer from 'react-test-renderer';
import { render } from '@testing-library/react';
import { RenderBlocks } from '@plone/volto/components';
import '@testing-library/jest-dom/extend-expect';

jest.mock('@plone/volto/components', () => ({
RenderBlocks: jest.fn(() => <div>RenderBlocks</div>),
}));

describe('View', () => {
it('should render without crashing', () => {
const props = {
data: {},
metadata: {},
properties: {},
};
const component = renderer.create(<View {...props} />);

const json = component.toJSON();
expect(json).toMatchSnapshot();
});

it('renders with default tag and without crashing', () => {
const props = {
data: {},
metadata: {},
properties: {},
};
const { container } = render(<View {...props} />);
expect(container.querySelector('div')).toBeInTheDocument();
});

it('renders with a custom tag and custom id', () => {
const props = {
data: {
as: 'section',
title: 'Test Title',
data: { key: 'value' },
},
properties: {},
};
const { container } = render(<View {...props} />);
expect(container.querySelector('section')).toBeInTheDocument();
expect(container.querySelector('#test-title')).toBeInTheDocument();
});

it('renders RenderBlocks with correct props', () => {
const props = {
data: {
as: 'section',
title: 'Test Title',
data: { key: 'value' },
},
metadata: { meta: 'data' },
properties: { prop: 'erty' },
};
render(<View {...props} />);
expect(RenderBlocks).toHaveBeenCalledWith(
expect.objectContaining({
metadata: props.metadata,
content: props.data.data,
}),
{},
);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Edit should render without crashing 1`] = `
<fieldset
className="section-block"
onKeyDown={[Function]}
role="presentation"
tabIndex={-1}
>
<legend
aria-hidden="true"
onClick={[Function]}
>
Section
</legend>
<div
className="blocks-form"
>
<fieldset
className="invisible"
disabled={false}
/>
</div>
</fieldset>
`;
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`View should render without crashing 1`] = `
<div>
<div>
RenderBlocks
</div>
</div>
`;

0 comments on commit 9b2299a

Please sign in to comment.