mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-10-31 16:07:45 +03:00 
			
		
		
		
	* Replace Action<unknown> with Action<string> In anticipation of Redux 5 type changes * Fix lint errors * Create yellow-steaks-marry.md
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import React from 'react';
 | |
| import { render } from '@testing-library/react';
 | |
| import { PerformAction } from '@redux-devtools/core';
 | |
| import { Action } from 'redux';
 | |
| import TestGenerator from '../src/TestGenerator';
 | |
| import fnTemplate from '../src/redux/mocha';
 | |
| import strTemplate from '../src/redux/mocha/template';
 | |
| import fnVanillaTemplate from '../src/vanilla/mocha';
 | |
| import strVanillaTemplate from '../src/vanilla/mocha/template';
 | |
| 
 | |
| const actions: { [actionId: number]: PerformAction<Action<string>> } = {
 | |
|   0: {
 | |
|     type: 'PERFORM_ACTION',
 | |
|     action: { type: '@@INIT' },
 | |
|     timestamp: 0,
 | |
|     stack: undefined,
 | |
|   },
 | |
|   1: {
 | |
|     type: 'PERFORM_ACTION',
 | |
|     action: { type: 'INCREMENT_COUNTER' },
 | |
|     timestamp: 0,
 | |
|     stack: undefined,
 | |
|   },
 | |
| };
 | |
| 
 | |
| const computedStates = [{ state: { counter: 0 } }, { state: { counter: 1 } }];
 | |
| 
 | |
| const TestGeneratorAsAny = TestGenerator as any;
 | |
| 
 | |
| describe('TestGenerator component', () => {
 | |
|   it('should show warning message when no params provided', () => {
 | |
|     const { container } = render(<TestGeneratorAsAny useCodemirror={false} />);
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it('should be empty when no actions provided', () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={fnTemplate.assertion}
 | |
|         dispatcher={fnTemplate.dispatcher}
 | |
|         wrap={fnTemplate.wrap}
 | |
|         useCodemirror={false}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it("should match function template's test for first action", () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={fnTemplate.assertion}
 | |
|         dispatcher={fnTemplate.dispatcher}
 | |
|         wrap={fnTemplate.wrap}
 | |
|         actions={actions}
 | |
|         computedStates={computedStates}
 | |
|         selectedActionId={1}
 | |
|         useCodemirror={false}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it("should match string template's test for first action", () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={strTemplate.assertion}
 | |
|         dispatcher={strTemplate.dispatcher}
 | |
|         wrap={strTemplate.wrap}
 | |
|         useCodemirror={false}
 | |
|         actions={actions}
 | |
|         computedStates={computedStates}
 | |
|         selectedActionId={1}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it('should generate test for the last action when selectedActionId not specified', () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={fnTemplate.assertion}
 | |
|         dispatcher={fnTemplate.dispatcher}
 | |
|         wrap={fnTemplate.wrap}
 | |
|         actions={actions}
 | |
|         computedStates={computedStates}
 | |
|         useCodemirror={false}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it('should generate test for vanilla js class', () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={fnVanillaTemplate.assertion}
 | |
|         dispatcher={fnVanillaTemplate.dispatcher}
 | |
|         wrap={fnVanillaTemplate.wrap}
 | |
|         actions={actions}
 | |
|         computedStates={computedStates}
 | |
|         selectedActionId={1}
 | |
|         isVanilla
 | |
|         name="SomeStore"
 | |
|         useCodemirror={false}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| 
 | |
|   it('should generate test for vanilla js class with string template', () => {
 | |
|     const { container } = render(
 | |
|       <TestGeneratorAsAny
 | |
|         assertion={strVanillaTemplate.assertion}
 | |
|         dispatcher={strVanillaTemplate.dispatcher}
 | |
|         wrap={strVanillaTemplate.wrap}
 | |
|         actions={actions}
 | |
|         computedStates={computedStates}
 | |
|         selectedActionId={1}
 | |
|         isVanilla
 | |
|         name="SomeStore"
 | |
|         useCodemirror={false}
 | |
|       />,
 | |
|     );
 | |
|     expect(container.firstChild).toMatchSnapshot();
 | |
|   });
 | |
| });
 |