-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(ui): toolbox items labels i18n (#2031)
* Fix toolbox item label translation * Update version * Update changelog * Update docs/CHANGELOG.md Co-authored-by: George Berezhnoy <[email protected]> * Add fallback for missing toolbox title * Update docs/CHANGELOG.md Co-authored-by: Peter Savchenko <[email protected]> * Add test * Add testcase for missing toolbox title Co-authored-by: George Berezhnoy <[email protected]> Co-authored-by: Peter Savchenko <[email protected]>
- Loading branch information
1 parent
8bf4dcd
commit 96c0bcb
Showing
4 changed files
with
92 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
import Header from '@editorjs/header'; | ||
import { ToolboxConfig } from '../../../types'; | ||
|
||
/** | ||
* Tool class allowing to test case when capitalized tool name is used as translation key if toolbox title is missing | ||
*/ | ||
class TestTool { | ||
/** | ||
* Returns toolbox config without title | ||
*/ | ||
public static get toolbox(): ToolboxConfig { | ||
return { | ||
title: '', | ||
icon: '<svg width="17" height="15" viewBox="0 0 336 276" xmlns="http://www.w3.org/2000/svg"><path d="M291 150V79c0-19-15-34-34-34H79c-19 0-34 15-34 34v42l67-44 81 72 56-29 42 30zm0 52l-43-30-56 30-81-67-66 39v23c0 19 15 34 34 34h178c17 0 31-13 34-29zM79 0h178c44 0 79 35 79 79v118c0 44-35 79-79 79H79c-44 0-79-35-79-79V79C0 35 35 0 79 0z"/></svg>', | ||
}; | ||
} | ||
} | ||
|
||
describe('Editor i18n', () => { | ||
context('Toolbox', () => { | ||
it('should translate tool title in a toolbox', () => { | ||
if (this && this.editorInstance) { | ||
this.editorInstance.destroy(); | ||
} | ||
const toolNamesDictionary = { | ||
Heading: 'Заголовок', | ||
}; | ||
|
||
cy.createEditor({ | ||
tools: { | ||
header: Header, | ||
}, | ||
i18n: { | ||
messages: { | ||
toolNames: toolNamesDictionary, | ||
}, | ||
}, | ||
}).as('editorInstance'); | ||
|
||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-block') | ||
.click(); | ||
|
||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-toolbar__plus') | ||
.click(); | ||
|
||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-popover__item[data-item-name=header]') | ||
.should('contain.text', toolNamesDictionary.Heading); | ||
}); | ||
|
||
it('should use capitalized tool name as translation key if toolbox title is missing', () => { | ||
if (this && this.editorInstance) { | ||
this.editorInstance.destroy(); | ||
} | ||
const toolNamesDictionary = { | ||
TestTool: 'ТестТул', | ||
}; | ||
|
||
cy.createEditor({ | ||
tools: { | ||
testTool: TestTool, | ||
}, | ||
i18n: { | ||
messages: { | ||
toolNames: toolNamesDictionary, | ||
}, | ||
}, | ||
}).as('editorInstance'); | ||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-block') | ||
.click(); | ||
|
||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-toolbar__plus') | ||
.click(); | ||
|
||
cy.get('[data-cy=editorjs]') | ||
.get('div.ce-popover__item[data-item-name=testTool]') | ||
.should('contain.text', toolNamesDictionary.TestTool); | ||
}); | ||
}); | ||
}); |