From ccb85733315b66aa16265d4a9ea59bb390cfc71f Mon Sep 17 00:00:00 2001 From: Neil Macneale Date: Mon, 1 Aug 2022 09:59:23 -0700 Subject: [PATCH] Replaced all the 'for ... of cases' tests with more direct expect() calls, which should give better errors --- tests/commands/DeployCommand.test.js | 343 ++++++++++++--------------- 1 file changed, 156 insertions(+), 187 deletions(-) diff --git a/tests/commands/DeployCommand.test.js b/tests/commands/DeployCommand.test.js index c65522b..8cc256c 100644 --- a/tests/commands/DeployCommand.test.js +++ b/tests/commands/DeployCommand.test.js @@ -71,166 +71,143 @@ describe('DeployCommand', () => { describe('IndexAdapter', () => { test('source', () => { - const cases = [ + const check = (input, output) => expect(command.indexAdapter(input)).toEqual(output); + check( + { name: 'name', source: 'source' }, { - label: 'plain string', - input: { name: 'name', source: 'source' }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - }, - }, + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + } + ); + check( + { name: 'name', source: ['source', 'source2'] }, { - label: 'array of strings', - input: { name: 'name', source: ['source', 'source2'] }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [ - { - collection: q.Collection('source'), - }, - { - collection: q.Collection('source2'), - }, - ], - }, + name: 'name', + data: command.defaultMetadata, + source: [ + { + collection: q.Collection('source'), + }, + { + collection: q.Collection('source2'), + }, + ], + } + ); + check( + { + name: 'name', + source: { collection: 'source', fields: { bind: BaseFQLString } }, }, { - label: 'source object', - input: { - name: 'name', - source: { collection: 'source', fields: { bind: BaseFQLString } }, - }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [ - { - collection: q.Collection('source'), - fields: { - bind: q.Query(BaseFQL), - }, + name: 'name', + data: command.defaultMetadata, + source: [ + { + collection: q.Collection('source'), + fields: { + bind: q.Query(BaseFQL), }, - ], - }, - }, - ] - - for (let { label, input, output } of cases) { - expect(command.indexAdapter(input)).toEqual(output) - } + }, + ], + } + ); }) test('terms', () => { - const cases = [ + const check = (input, output) => expect(command.indexAdapter(input)).toEqual(output); + check( { - label: 'only fields', - input: { - name: 'name', - source: 'source', - terms: { fields: ['data.field1', 'data.field2'] }, - }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - terms: [ - { field: ['data', 'field1'] }, - { field: ['data', 'field2'] }, - ], - }, + name: 'name', + source: 'source', + terms: { fields: ['data.field1', 'data.field2'] }, }, { - label: 'with binding', - input: { - name: 'name', - source: 'source', - terms: { - fields: ['data.field1', 'data.field2'], - bindings: ['bind'], - }, - }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - terms: [ - { field: ['data', 'field1'] }, - { field: ['data', 'field2'] }, - { binding: 'bind' }, - ], + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + terms: [ + { field: ['data', 'field1'] }, + { field: ['data', 'field2'] }, + ], + }, + ); + check( + { + name: 'name', + source: 'source', + terms: { + fields: ['data.field1', 'data.field2'], + bindings: ['bind'], }, }, - ] - - for (let { label, input, output } of cases) { - expect(command.indexAdapter(input)).toEqual(output) - } + { + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + terms: [ + { field: ['data', 'field1'] }, + { field: ['data', 'field2'] }, + { binding: 'bind' }, + ], + }, + ); }) test('values', () => { - const cases = [ + const check = (input, output) => expect(command.indexAdapter(input)).toEqual(output); + check( { - label: 'only fields', - input: { - name: 'name', - source: 'source', - values: { fields: ['data.field1', 'data.field2'] }, - }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - values: [ - { field: ['data', 'field1'] }, - { field: ['data', 'field2'] }, - ], - }, + name: 'name', + source: 'source', + values: { fields: ['data.field1', 'data.field2'] }, }, { - label: 'with binding', - input: { - name: 'name', - source: 'source', - values: { - fields: ['data.field1', 'data.field2'], - bindings: ['bind'], - }, - }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - values: [ - { field: ['data', 'field1'] }, - { field: ['data', 'field2'] }, - { binding: 'bind' }, - ], - }, + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + values: [ + { field: ['data', 'field1'] }, + { field: ['data', 'field2'] }, + ], }, + ); + check( { - label: 'with reverse', - input: { - name: 'name', - source: 'source', - values: { - fields: [{ path: 'data.field1', reverse: true }], - }, + name: 'name', + source: 'source', + values: { + fields: ['data.field1', 'data.field2'], + bindings: ['bind'], }, - output: { - name: 'name', - data: command.defaultMetadata, - source: [{ collection: q.Collection('source') }], - values: [{ field: ['data', 'field1'], reverse: true }], + }, + { + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + values: [ + { field: ['data', 'field1'] }, + { field: ['data', 'field2'] }, + { binding: 'bind' }, + ], + }, + ); + check( + { + name: 'name', + source: 'source', + values: { + fields: [{ path: 'data.field1', reverse: true }], }, }, - ] - - for (let { label, input, output } of cases) { - expect(command.indexAdapter(input)).toEqual(output) - } + { + name: 'name', + data: command.defaultMetadata, + source: [{ collection: q.Collection('source') }], + values: [{ field: ['data', 'field1'], reverse: true }], + }, + ); }) }) @@ -291,63 +268,55 @@ describe('DeployCommand', () => { }) test('membership', () => { - const cases = [ + const check = (input, output) => expect(command.roleAdapter(input)).toEqual(output); + check( { - label: 'plain string', - input: { - name: 'name', - membership: 'membership', - privileges: [ - { collection: 'collection', actions: { read: true } }, - ], - }, - output: { - name: 'name', - data: command.defaultMetadata, - privileges: [ - { - resource: q.Collection('collection'), - actions: { read: true }, - }, - ], - membership: [{ resource: q.Collection('membership') }], - }, + name: 'name', + membership: 'membership', + privileges: [ + { collection: 'collection', actions: { read: true } }, + ], }, - { - label: 'membership object', - input: { - name: 'name', - membership: { - resource: 'membership', - predicate: BaseFQLString, + name: 'name', + data: command.defaultMetadata, + privileges: [ + { + resource: q.Collection('collection'), + actions: { read: true }, }, - privileges: [ - { collection: 'collection', actions: { read: true } }, - ], - }, - output: { - name: 'name', - data: command.defaultMetadata, - privileges: [ - { - resource: q.Collection('collection'), - actions: { read: true }, - }, - ], - membership: [ - { - resource: q.Collection('membership'), - predicate: q.Query(BaseFQL), - }, - ], + ], + membership: [{ resource: q.Collection('membership') }], + }, + ); + check( + { + name: 'name', + membership: { + resource: 'membership', + predicate: BaseFQLString, }, + privileges: [ + { collection: 'collection', actions: { read: true } }, + ], }, - ] - - for (let { label, input, output } of cases) { - expect(command.roleAdapter(input)).toEqual(output) - } + { + name: 'name', + data: command.defaultMetadata, + privileges: [ + { + resource: q.Collection('collection'), + actions: { read: true }, + }, + ], + membership: [ + { + resource: q.Collection('membership'), + predicate: q.Query(BaseFQL), + }, + ], + }, + ); }) test('splitAndAdaptRoles', () => {