Comments (5)
@gm-al FYI, we will upgrade the roosterjs-react code to be v9 and use new v9 editor in a near future. Although in this change most logic is not changed, but all the code interfaces will be moved to using v9 types.
So if you are still working on the unit test, you may hold on and wait for this v9 change so that your test can target to the new roosterjs-react code.
from roosterjs.
@gm-al sure please go ahead and our team will be happy to do code review.
from roosterjs.
I'm working on writing the unit tests for the roosterjs-react
, I'm facing some issues related to the webpack config when running tests I wrote for the createPasteOptionPlugin
in the pasteOptions
folder. When I run npm test
I get the following error logs.
An error was thrown in afterAll
Uncaught Error: Module parse failed: Unexpected token (12:12)
You may need an appropriate loader to handle this file type,
currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| import { renderReactComponent } from '../../common/utils/renderReactComponent';
| import { useTheme } from '@fluentui/react/lib/Theme';
> import type { LocalizedStrings, UIUtilities } from '../../common/index';
| import type { Theme } from '@fluentui/react/lib/Theme';
| import type { PasteOptionButtonKeys, PasteOptionStringKeys } from '../type/PasteOptionStringKeys';
an example of a unit test:
describe('createPasteOptionPlugin', () => {
let editor: IEditor;
let plugin: ReactEditorPlugin;
beforeEach(() => {
plugin = createPasteOptionPlugin();
editor = initEditor(div, [plugin]);
plugin.initialize(editor);
});
it('getName', () => {
expect(plugin.getName()).toEqual('PasteOption');
});
});
I'm not sure what I'm missing but the webpack.config
already handles files with ts
extension using ts-loader
. Is there new configuration we need to add to handle these TypeScript files with type imports and update the tsconfig? I would appreciate your help on this @JiuqingSong . Thank you!
from roosterjs.
From the error message, it is complaining the keyword "type". Can you try to remove it?
Currently we didn't force adding "type" import for test code, so we didn't test when adding it if it can pass the build
from roosterjs.
Yes, actually I did that earlier and got another error but now that I am thinking about it, I think webpack is complaining about the code being imported from the fluentui
lib?
Uncaught Error: Module parse failed: Unexpected token (17:55)
You may need an appropriate loader to handle this file type,
currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| import { useTheme } from '@fluentui/react/lib/Theme';
|
> const getPasteOptionClassNames = memoizeFunction((theme: Theme) => {
| const palette = theme.palette;
|
from roosterjs.
Related Issues (20)
- Format button does not work in Safari when WatermarkPlugin is enabled
- Content Model APIs : How to set content programmatically HOT 4
- [Question] - Is there any plan to enhance roosterjs-react using content model apis in @fluentui/react-component (V9) HOT 3
- [Bug]: roosterjs-content-model-api - changeFontSize not working as expected HOT 4
- Lists (bulleted and numbered) aren't visible/properly indented when font-size is huge HOT 2
- Entity delimiter keyboard event not working correctly in demo site
- Inserting images wider than editor viewport causes horizontal scroll bar HOT 3
- Cannot cut tables
- On Safari, inserted new column of a table are not added next to the selected cell
- Enter on expanded selection under list should create new list item
- contentModelToText treat some elements as empty string HOT 1
- Make `watermark` property accessible by descendants of WatermarkPlugin (content model packages) HOT 3
- Minimal example for React+TypeScript in a SPA, preferably with FluentUI v9 theming HOT 7
- Watermark plugin doesn't work well with the indentation change when editor doesn't have any content HOT 4
- Some links are pasted as <a> tag even when `autoLink = false` for AutoFormatPlugin HOT 2
- [Safari only] When table context menu is shown, table cell is selected for a moment
- "scrollCaretIntoView" causes unexpected scrolling
- New text overlaps the placeholder text for Android HOT 1
- Content Model convert "dir" attribute to "direction" style
- MutationObserver will be triggered by ContentModel frequently
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from roosterjs.