UNPKG

@kinvolk/headlamp-plugin

Version:

The needed infrastructure for building Headlamp plugins.

74 lines (68 loc) 2.46 kB
import { getLogsHelperMessage, sortLogsByTimestamp } from './jobLogs'; describe('getLogsHelperMessage', () => { it('returns no pods message once the no-pods guard is enabled', () => { expect( getLogsHelperMessage({ logs: [], podError: null, pods: [], podsLoading: false, isInitializingSelection: false, shouldShowNoLogsMessage: false, shouldShowNoPodsMessage: true, selectedContainer: '', selectedPods: [], }) ).toBe( 'No pods have been created for this Job yet. It may still be pending or unschedulable. Check Pod Issues and Events.' ); }); it('returns no logs message once a valid selection is settled', () => { expect( getLogsHelperMessage({ logs: [], podError: null, pods: [{ metadata: { name: 'job-0' } }], podsLoading: false, isInitializingSelection: false, shouldShowNoLogsMessage: true, shouldShowNoPodsMessage: false, selectedContainer: 'main', selectedPods: [{ metadata: { name: 'job-0' } }], }) ).toBe( 'No logs available yet. The selected container may not have started or may not have emitted output. Check Pod Issues and Events.' ); }); it('returns loading message while selection is still initializing', () => { expect( getLogsHelperMessage({ logs: [], podError: null, pods: [{ metadata: { name: 'job-0' } }], podsLoading: false, isInitializingSelection: true, shouldShowNoLogsMessage: true, shouldShowNoPodsMessage: false, selectedContainer: '', selectedPods: [{ metadata: { name: 'job-0' } }], }) ).toBe('Loading logs...'); }); }); describe('sortLogsByTimestamp', () => { it('sorts by full RFC3339 timestamp and falls back deterministically', () => { const logs = [ '[pod-b/main] 2026-04-18T13:16:58.715082657Z hello from template', '[pod-a/main] 2026-04-18T13:16:58.115082657Z starting up', '[pod-c/main] no timestamp here', '[pod-a/main] 2026-04-18T13:16:58.115082657Z another line', ]; expect(sortLogsByTimestamp(logs)).toEqual([ '[pod-a/main] 2026-04-18T13:16:58.115082657Z another line', '[pod-a/main] 2026-04-18T13:16:58.115082657Z starting up', '[pod-b/main] 2026-04-18T13:16:58.715082657Z hello from template', '[pod-c/main] no timestamp here', ]); }); });