mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-10-30 23:47:35 +03:00 
			
		
		
		
	* Start converting to jest * Use toMatch * Finish * Remove commented out code * Remove @babel/register
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { insertScript, listenMessage } from '../../utils/inject';
 | |
| import '../../../src/browser/extension/inject/pageScript';
 | |
| 
 | |
| describe('API', () => {
 | |
|   it('should get window.__REDUX_DEVTOOLS_EXTENSION__ function', () => {
 | |
|     expect(typeof window.__REDUX_DEVTOOLS_EXTENSION__).toBe('function');
 | |
|   });
 | |
| 
 | |
|   it('should notify error', () => {
 | |
|     const mockFunc = jest.fn(() => {});
 | |
|     window.__REDUX_DEVTOOLS_EXTENSION__.notifyErrors(mockFunc);
 | |
|     insertScript('hi()');
 | |
|     expect(mockFunc.mock.calls.length).toBeGreaterThan(0);
 | |
|   });
 | |
| 
 | |
|   it('should open monitor', async () => {
 | |
|     let message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.open();
 | |
|     });
 | |
|     expect(message).toEqual({
 | |
|       source: '@devtools-page',
 | |
|       type: 'OPEN',
 | |
|       position: 'right',
 | |
|     });
 | |
| 
 | |
|     message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.open('left');
 | |
|     });
 | |
|     expect(message).toEqual({
 | |
|       source: '@devtools-page',
 | |
|       type: 'OPEN',
 | |
|       position: 'left',
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   it('should send message', async () => {
 | |
|     let message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.send('hi');
 | |
|     });
 | |
|     expect(message).toMatchObject({
 | |
|       type: 'ACTION',
 | |
|       payload: undefined,
 | |
|       instanceId: 1,
 | |
|       name: undefined,
 | |
|       source: '@devtools-page',
 | |
|     });
 | |
|     expect(message.action).toMatch(/{"action":{"type":"hi"},"timestamp":\d+}/);
 | |
| 
 | |
|     message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.send(
 | |
|         { type: 'hi' },
 | |
|         { counter: 1 },
 | |
|         1
 | |
|       );
 | |
|     });
 | |
|     expect(message).toMatchObject({
 | |
|       type: 'ACTION',
 | |
|       payload: '{"counter":1}',
 | |
|       instanceId: 1,
 | |
|       name: undefined,
 | |
|       source: '@devtools-page',
 | |
|     });
 | |
|     expect(message.action).toMatch(/{"action":{"type":"hi"},"timestamp":\d+}/);
 | |
| 
 | |
|     message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.send(
 | |
|         { type: 'hi' },
 | |
|         { counter: 1 },
 | |
|         1
 | |
|       );
 | |
|     });
 | |
|     expect(message).toMatchObject({
 | |
|       type: 'ACTION',
 | |
|       payload: '{"counter":1}',
 | |
|       instanceId: 1,
 | |
|       name: undefined,
 | |
|       source: '@devtools-page',
 | |
|     });
 | |
|     expect(message.action).toMatch(/{"action":{"type":"hi"},"timestamp":\d+}/);
 | |
| 
 | |
|     message = await listenMessage(() => {
 | |
|       window.__REDUX_DEVTOOLS_EXTENSION__.send(undefined, { counter: 1 }, 1);
 | |
|     });
 | |
|     expect(message).toEqual({
 | |
|       action: undefined,
 | |
|       type: 'STATE',
 | |
|       payload: { counter: 1 },
 | |
|       actionsById: undefined,
 | |
|       computedStates: undefined,
 | |
|       committedState: false,
 | |
|       instanceId: 1,
 | |
|       maxAge: undefined,
 | |
|       name: undefined,
 | |
|       source: '@devtools-page',
 | |
|     });
 | |
|   });
 | |
| });
 |