mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-10-31 16:07:45 +03:00 
			
		
		
		
	* react-base16-styling * Use inline react-base16-styling themes * Fix * Format * Fix * Fixes * Transform more * react-json-tree * Update lock * Remove unnecessary * react-dock * Move to dep * Lock * Fix * Fix * Create tame-eagles-relax.md
		
			
				
	
	
		
			234 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { map2tree, Node } from '../src/index.js';
 | |
| import * as immutable from 'immutable';
 | |
| 
 | |
| test('# rootNodeKey', () => {
 | |
|   const map = {};
 | |
|   const options = { key: 'foo' };
 | |
| 
 | |
|   expect((map2tree(map, options) as Node).name).toBe('foo');
 | |
| });
 | |
| 
 | |
| describe('# shallow map', () => {
 | |
|   test('## null', () => {
 | |
|     const map = {
 | |
|       a: null,
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [{ name: 'a', value: null }],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## value', () => {
 | |
|     const map = {
 | |
|       a: 'foo',
 | |
|       b: 'bar',
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         { name: 'a', value: 'foo' },
 | |
|         { name: 'b', value: 'bar' },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## object', () => {
 | |
|     const map = {
 | |
|       a: { aa: 'foo' },
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [{ name: 'a', children: [{ name: 'aa', value: 'foo' }] }],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## immutable Map', () => {
 | |
|     const map = {
 | |
|       a: immutable.fromJS({ aa: 'foo', ab: 'bar' }),
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             { name: 'aa', value: 'foo' },
 | |
|             { name: 'ab', value: 'bar' },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('# deep map', () => {
 | |
|   test('## null', () => {
 | |
|     const map = {
 | |
|       a: { aa: null },
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             {
 | |
|               name: 'aa',
 | |
|               value: null,
 | |
|             },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## object', () => {
 | |
|     const map = {
 | |
|       a: { aa: { aaa: 'foo' } },
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             {
 | |
|               name: 'aa',
 | |
|               children: [{ name: 'aaa', value: 'foo' }],
 | |
|             },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('# array map', () => {
 | |
|   const map = {
 | |
|     a: [1, 2],
 | |
|   };
 | |
| 
 | |
|   test('## push', () => {
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             { name: 'a[0]', value: 1 },
 | |
|             { name: 'a[1]', value: 2 },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## unshift', () => {
 | |
|     const options = { pushMethod: 'unshift' as const };
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             { name: 'a[1]', value: 2 },
 | |
|             { name: 'a[0]', value: 1 },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map, options)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map), options)).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## null', () => {
 | |
|     const map = {
 | |
|       a: [null],
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [{ name: 'a[0]', value: null }],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('# collection map', () => {
 | |
|   test('## value', () => {
 | |
|     const map = {
 | |
|       a: [{ aa: 1 }, { aa: 2 }],
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [
 | |
|             { name: 'a[0]', object: { aa: 1 } },
 | |
|             { name: 'a[1]', object: { aa: 2 } },
 | |
|           ],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| 
 | |
|   test('## object', () => {
 | |
|     const map = {
 | |
|       a: [{ aa: { aaa: 'foo' } }],
 | |
|     };
 | |
| 
 | |
|     const expected = {
 | |
|       name: 'state',
 | |
|       children: [
 | |
|         {
 | |
|           name: 'a',
 | |
|           children: [{ name: 'a[0]', object: { aa: { aaa: 'foo' } } }],
 | |
|         },
 | |
|       ],
 | |
|     };
 | |
| 
 | |
|     expect(map2tree(map)).toEqual(expected);
 | |
|     expect(map2tree(immutable.fromJS(map))).toEqual(expected);
 | |
|   });
 | |
| });
 |