diff --git a/desktop/plugins/logs/__tests__/index.node.js b/desktop/plugins/logs/__tests__/index.node.ts similarity index 57% rename from desktop/plugins/logs/__tests__/index.node.js rename to desktop/plugins/logs/__tests__/index.node.ts index dd18289b3..2fc4e6613 100644 --- a/desktop/plugins/logs/__tests__/index.node.js +++ b/desktop/plugins/logs/__tests__/index.node.ts @@ -7,12 +7,12 @@ * @format */ -import {addEntriesToState, processEntry} from '../index.tsx'; +import {addEntriesToState, processEntry} from '../index'; +import {DeviceLogEntry} from 'flipper'; -const entry = { +const entry: DeviceLogEntry = { tag: 'OpenGLRenderer', pid: 18384, - tid: 18409, message: 'Swap behavior 1', date: new Date('Feb 28 2013 19:00:00 EST'), @@ -37,17 +37,20 @@ test('addEntriesToState without current state', () => { }); test('addEntriesToState with current state', () => { - const currentState = addEntriesToState([processEntry(entry, 'key1')]); - const processedEntry = processEntry( + const firstProcessedEntry = processEntry(entry, 'key1'); + const currentState = addEntriesToState([firstProcessedEntry]); + const secondProcessedEntry = processEntry( { ...entry, message: 'new message', }, 'key2', ); - const newState = addEntriesToState([processedEntry], currentState); - expect(newState.rows.length).toBe(2); + const newState = addEntriesToState([secondProcessedEntry], currentState); expect(newState.entries.length).toBe(2); + expect(newState.rows.length).toBe(2); + expect(newState.rows[0]).toEqual(firstProcessedEntry.row); + expect(newState.rows[1]).toEqual(secondProcessedEntry.row); }); test('addEntriesToState increase counter on duplicate message', () => { @@ -58,3 +61,25 @@ test('addEntriesToState increase counter on duplicate message', () => { expect(newState.entries.length).toBe(2); expect(newState.rows[0].columns.type.value.props.children).toBe(2); }); + +test('addEntriesToState with reversed direction (add to front)', () => { + const firstProcessedEntry = processEntry(entry, 'key1'); + const currentState = addEntriesToState([firstProcessedEntry]); + expect(currentState.rows.length).toBe(1); + expect(currentState.entries.length).toBe(1); + const secondProcessedEntry = processEntry( + { + ...entry, + message: 'second message', + date: new Date('Feb 28 2013 19:01:00 EST'), + }, + 'key2', + ); + const newState = addEntriesToState( + [secondProcessedEntry], + currentState, + 'down', + ); + expect(newState.entries.length).toBe(2); + expect(newState.rows.length).toBe(2); +});