Browse Source

Tests fixed.

pull/604/head
Sebastian 5 years ago
parent
commit
09b7c1f105
  1. 5
      frontend/app/shared/state/schemas.state.spec.ts
  2. 16
      frontend/app/shared/state/schemas.state.ts

5
frontend/app/shared/state/schemas.state.spec.ts

@ -63,6 +63,7 @@ describe('SchemasState', () => {
const categories = getCategories(schemasState); const categories = getCategories(schemasState);
expect(categories!).toEqual([ expect(categories!).toEqual([
{ name: '', upper: '', schemas: [] },
{ name: 'category1', upper: 'CATEGORY1', schemas: [schema1] }, { name: 'category1', upper: 'CATEGORY1', schemas: [schema1] },
{ name: 'category2', upper: 'CATEGORY2', schemas: [schema2] } { name: 'category2', upper: 'CATEGORY2', schemas: [schema2] }
]); ]);
@ -84,6 +85,7 @@ describe('SchemasState', () => {
const categories = getCategories(schemasState); const categories = getCategories(schemasState);
expect(categories!).toEqual([ expect(categories!).toEqual([
{ name: '', upper: '', schemas: [] },
{ name: 'category1', upper: 'CATEGORY1', schemas: [schema1] }, { name: 'category1', upper: 'CATEGORY1', schemas: [schema1] },
{ name: 'category2', upper: 'CATEGORY2', schemas: [schema2] }, { name: 'category2', upper: 'CATEGORY2', schemas: [schema2] },
{ name: 'category3', upper: 'CATEGORY3', schemas: [] } { name: 'category3', upper: 'CATEGORY3', schemas: [] }
@ -151,6 +153,7 @@ describe('SchemasState', () => {
const categories = getCategories(schemasState); const categories = getCategories(schemasState);
expect(categories!).toEqual([ expect(categories!).toEqual([
{ name: '', upper: '', schemas: [] },
{ name: 'category1', upper: 'CATEGORY1', schemas: [schema1] }, { name: 'category1', upper: 'CATEGORY1', schemas: [schema1] },
{ name: 'category2', upper: 'CATEGORY2', schemas: [schema2] }, { name: 'category2', upper: 'CATEGORY2', schemas: [schema2] },
{ name: 'category3', upper: 'CATEGORY3', schemas: [] } { name: 'category3', upper: 'CATEGORY3', schemas: [] }
@ -163,6 +166,7 @@ describe('SchemasState', () => {
const categories = getCategories(schemasState); const categories = getCategories(schemasState);
expect(categories!).toEqual([ expect(categories!).toEqual([
{ name: '', upper: '', schemas: [] },
{ name: 'category1', upper: 'CATEGORY1', schemas: [schema1] }, { name: 'category1', upper: 'CATEGORY1', schemas: [schema1] },
{ name: 'category2', upper: 'CATEGORY2', schemas: [schema2] } { name: 'category2', upper: 'CATEGORY2', schemas: [schema2] }
]); ]);
@ -175,6 +179,7 @@ describe('SchemasState', () => {
const categories = getCategories(schemasState); const categories = getCategories(schemasState);
expect(categories!).toEqual([ expect(categories!).toEqual([
{ name: '', upper: '', schemas: [] },
{ name: 'category1', upper: 'CATEGORY1', schemas: [schema1] }, { name: 'category1', upper: 'CATEGORY1', schemas: [schema1] },
{ name: 'category2', upper: 'CATEGORY2', schemas: [schema2] } { name: 'category2', upper: 'CATEGORY2', schemas: [schema2] }
]); ]);

16
frontend/app/shared/state/schemas.state.ts

@ -385,23 +385,25 @@ function getField(x: SchemaDetailsDto, request: AddFieldDto, parent?: RootFieldD
const NO_NAME = ''; const NO_NAME = '';
function buildCategories(categories: ReadonlyArray<string>, schemas: SchemasList): ReadonlyArray<SchemaCategory> { function buildCategories(categories: ReadonlyArray<string>, allSchemas: SchemasList): ReadonlyArray<SchemaCategory> {
const uniqueCategories: { [name: string]: true } = { [NO_NAME]: true }; const uniqueCategories: { [name: string]: true } = {
[NO_NAME]: true
};
for (const category of categories) { for (const category of categories) {
uniqueCategories[category] = true; uniqueCategories[category] = true;
} }
for (const schema of schemas) { for (const schema of allSchemas) {
uniqueCategories[getCategory(schema)] = true; uniqueCategories[getCategory(schema)] = true;
} }
const result: SchemaCategory[] = []; const result: SchemaCategory[] = [];
for (const name in uniqueCategories) { for (const name of Object.keys(uniqueCategories)) {
if (uniqueCategories.hasOwnProperty(name)) { const schemas = allSchemas.filter(x => isSameCategory(name, x));
result.push({ name, upper: name.toUpperCase(), schemas: schemas.filter(x => isSameCategory(name, x))});
} result.push({ name, upper: name.toUpperCase(), schemas });
} }
result.sort((a, b) => compareStrings(a.upper, b.upper)); result.sort((a, b) => compareStrings(a.upper, b.upper));

Loading…
Cancel
Save