Skip to content

Commit

Permalink
Replaced all the 'for ... of cases' tests with more direct expect() c…
Browse files Browse the repository at this point in the history
…alls, which should give better errors
  • Loading branch information
macmv committed Aug 1, 2022
1 parent e5c0143 commit ccb8573
Showing 1 changed file with 156 additions and 187 deletions.
343 changes: 156 additions & 187 deletions tests/commands/DeployCommand.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 }],
},
);
})
})

Expand Down Expand Up @@ -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', () => {
Expand Down

0 comments on commit ccb8573

Please sign in to comment.