Skip to content

Commit

Permalink
Support array columns config
Browse files Browse the repository at this point in the history
  • Loading branch information
nhle-mgmtp committed Apr 22, 2021
1 parent 526a098 commit 3776f96
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 16 deletions.
20 changes: 15 additions & 5 deletions src/schemas/shared.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,23 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"columns": {
"type": "object",
"patternProperties": {
"^[0-9]+$": {
"oneOf": [
{
"type": "object",
"patternProperties": {
"^[0-9]+$": {
"$ref": "#/definitions/column"
}
},
"additionalProperties": false
},
{
"type": "array",
"items": {
"$ref": "#/definitions/column"
}
},
"additionalProperties": false
}
]
},
"column": {
"type": "object",
Expand Down
36 changes: 36 additions & 0 deletions test/streamConfigSamples.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,21 @@ const streamConfigSamples: {invalid: unknown[], valid: StreamUserConfig[], } = {
{columns: {1: {truncate: '1'}}},
{columns: {1: {paddingLeft: '1'}}},
{columns: {1: {paddingRight: '1'}}},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: [1]},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: ['']},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: [{unknown: 1}]},
{columnDefault: 1},
{columnDefault: {unknown: 1}},
{columnDefault: {alignment: 1}},
Expand Down Expand Up @@ -160,6 +175,27 @@ const streamConfigSamples: {invalid: unknown[], valid: StreamUserConfig[], } = {
},
},

{columnCount: 3,
columnDefault: {
width: 50,
},
columns: []},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: [{width: 5}]},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: [{wrapWord: true}, {truncate: 1}]},
{columnCount: 3,
columnDefault: {
width: 50,
},
columns: [{paddingLeft: 1}, {paddingRight: 1}, {alignment: 'right'}]},

],
};

Expand Down
6 changes: 3 additions & 3 deletions test/config.ts → test/tableConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import validators from '../src/generated/validators';
import configSchema from '../src/schemas/config.json';
import sharedSchema from '../src/schemas/shared.json';
import configSamples from './configSamples';
import tableConfigSamples from './tableConfigSamples';

const validateConfig = validators['config.json'];

Expand All @@ -25,14 +25,14 @@ describe('config.json schema', () => {
});

it('passes validation of valid config samples', () => {
for (const sample of configSamples.valid) {
for (const sample of tableConfigSamples.valid) {
expect(validate(sample)).to.equal(true);
expect(validateConfig(sample)).to.equal(true);
}
});

it('fails validation of invalid config samples', () => {
for (const sample of configSamples.invalid) {
for (const sample of tableConfigSamples.invalid) {
expect(validate(sample)).to.equal(false);
expect(validateConfig(sample)).to.equal(false);
}
Expand Down
21 changes: 13 additions & 8 deletions test/configSamples.ts → test/tableConfigSamples.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type {
TableUserConfig,
} from '../src';

const configSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
const tableConfigSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
invalid: [
{border: 1},
{border: {unknown: '-'}},
Expand Down Expand Up @@ -32,6 +32,9 @@ const configSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
{columns: {1: {truncate: '1'}}},
{columns: {1: {paddingLeft: '1'}}},
{columns: {1: {paddingRight: '1'}}},
{columns: [1]},
{columns: ['']},
{columns: [{unknown: 1}]},
{columnDefault: 1},
{columnDefault: {unknown: 1}},
{columnDefault: {alignment: 1}},
Expand Down Expand Up @@ -97,17 +100,15 @@ const configSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
paddingLeft: 0,
paddingRight: 1,
},

// drawHorizontalLine: () => {
// return false
// }
drawHorizontalLine: () => {
return false;
},
},

{
columnDefault: {
width: 50,
},

// columnCount: 3,
columns: {
0: {
alignment: 'right',
Expand Down Expand Up @@ -142,6 +143,10 @@ const configSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
{columns: {1: {truncate: 1}}},
{columns: {1: {paddingLeft: 1}}},
{columns: {1: {paddingRight: 1}}},
{columns: []},
{columns: [{width: 5}]},
{columns: [{wrapWord: true}, {truncate: 1}]},
{columns: [{paddingLeft: 1}, {paddingRight: 1}, {alignment: 'right'}]},
{columnDefault: {alignment: 'left'}},
{columnDefault: {width: 5}},
{columnDefault: {wrapWord: true}},
Expand All @@ -154,4 +159,4 @@ const configSamples: {invalid: unknown[], valid: TableUserConfig[], } = {
],
};

export default configSamples;
export default tableConfigSamples;

0 comments on commit 3776f96

Please sign in to comment.