From c089a130bb04818b8a5432a83a87e1ad10c1d369 Mon Sep 17 00:00:00 2001 From: Amanda Chesin <33710232+achesin@users.noreply.github.com> Date: Fri, 19 Feb 2021 17:38:47 -0500 Subject: [PATCH] Improved SearchForm test suite (#688) * improved searchform test suite Signed-off-by: Amanda Chesin * improved searchform test suite, removede snapshots Signed-off-by: Amanda Chesin * removed snapshot tests Signed-off-by: Amanda Chesin Signed-off-by: vvvprabhakar --- .../components/SearchTracePage/SearchForm.js | 2 +- .../SearchTracePage/SearchForm.test.js | 44 ++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.js b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.js index 0dabd74345..e2cff1a185 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.js +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.js @@ -604,7 +604,7 @@ export function mapStateToProps(state) { }; } -function mapDispatchToProps(dispatch) { +export function mapDispatchToProps(dispatch) { const { searchTraces } = bindActionCreators(jaegerApiActions, dispatch); return { onSubmit: fields => submitForm(fields, searchTraces), diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.test.js b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.test.js index 8969dc6de7..fd109de365 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.test.js +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.test.js @@ -26,6 +26,7 @@ import { convTagsLogfmt, getUnixTimeStampInMSFromForm, lookbackToTimestamp, + mapDispatchToProps, mapStateToProps, optionsWithinMaxLookback, submitForm, @@ -264,6 +265,23 @@ describe('submitForm()', () => { expect(operation).toBe(undefined); }); + it('expects operation to be value defined in beforeEach', () => { + submitForm(fields, searchTraces); + const { calls } = searchTraces.mock; + expect(calls.length).toBe(1); + const { operation } = calls[0][0]; + expect(operation).toBe('op-a'); + }); + + it('expects operation to be value assigned before call is made', () => { + fields.operation = 'test'; + submitForm(fields, searchTraces); + const { calls } = searchTraces.mock; + expect(calls.length).toBe(1); + const { operation } = calls[0][0]; + expect(operation).toBe('test'); + }); + describe('`fields.lookback`', () => { function getCalledDuration(mock) { const { start, end } = mock.calls[0][0]; @@ -370,6 +388,22 @@ describe('', () => { expect(ops.prop('props').disabled).toBe(false); }); + it('keeps operation disabled when no service selected', () => { + let ops = wrapper.find('[placeholder="Select An Operation"]'); + expect(ops.prop('props').disabled).toBe(true); + wrapper = shallow(); + ops = wrapper.find('[placeholder="Select An Operation"]'); + expect(ops.prop('props').disabled).toBe(true); + }); + + it('enables operation when unknown service selected', () => { + let ops = wrapper.find('[placeholder="Select An Operation"]'); + expect(ops.prop('props').disabled).toBe(true); + wrapper = shallow(); + ops = wrapper.find('[placeholder="Select An Operation"]'); + expect(ops.prop('props').disabled).toBe(false); + }); + it('shows custom date inputs when `props.selectedLookback` is "custom"', () => { function getDateFieldLengths(compWrapper) { return [ @@ -439,7 +473,7 @@ describe('mapStateToProps()', () => { let state; beforeEach(() => { - state = { router: { location: { serach: '' } } }; + state = { router: { location: { search: '' } } }; }); it('does not explode when the query string is empty', () => { @@ -542,3 +576,11 @@ describe('mapStateToProps()', () => { expect(msDiff(dateParams.dateStr, dateParams.dateTimeStr, endDate, endDateTime)).toBeLessThan(60 * 1000); }); }); + +describe('mapDispatchToProps()', () => { + it('creates the actions correctly', () => { + expect(mapDispatchToProps(() => {})).toEqual({ + onSubmit: expect.any(Function), + }); + }); +});