From a705e8ddf10f0af1224dcede536de953d063cf11 Mon Sep 17 00:00:00 2001 From: Krist Wongsuphasawat Date: Wed, 27 Feb 2019 14:27:04 -0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20.clone()=20fun?= =?UTF-8?q?ction=20to=20ChartMetadata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superset-ui-chart/src/models/ChartMetadata.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/superset-ui-chart/src/models/ChartMetadata.ts b/packages/superset-ui-chart/src/models/ChartMetadata.ts index 1172d28cce..b2c3a7340f 100644 --- a/packages/superset-ui-chart/src/models/ChartMetadata.ts +++ b/packages/superset-ui-chart/src/models/ChartMetadata.ts @@ -4,6 +4,7 @@ interface LookupTable { export default class ChartMetadata { name: string; + canBeAnnotationTypes?: string[]; canBeAnnotationTypesLookup: LookupTable; credits: string[]; description: string; @@ -37,6 +38,7 @@ export default class ChartMetadata { this.credits = credits; this.description = description; this.show = show; + this.canBeAnnotationTypes = canBeAnnotationTypes; this.canBeAnnotationTypesLookup = canBeAnnotationTypes.reduce( (prev: LookupTable, type: string) => { const lookup = prev; @@ -54,4 +56,17 @@ export default class ChartMetadata { canBeAnnotationType(type: string): boolean { return this.canBeAnnotationTypesLookup[type] || false; } + + clone() { + return new ChartMetadata({ + name: this.name, + canBeAnnotationTypes: this.canBeAnnotationTypes, + credits: this.credits, + description: this.description, + show: this.show, + supportedAnnotationTypes: this.supportedAnnotationTypes, + thumbnail: this.thumbnail, + useLegacyApi: this.useLegacyApi, + }); + } } From c73bfc45d03e1b7da6da8869c12eab8cbb540d24 Mon Sep 17 00:00:00 2001 From: Krist Wongsuphasawat Date: Wed, 27 Feb 2019 14:32:00 -0800 Subject: [PATCH 2/3] =?UTF-8?q?test:=20=F0=9F=92=8D=20add=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/models/ChartMetadata.test.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/superset-ui-chart/test/models/ChartMetadata.test.ts b/packages/superset-ui-chart/test/models/ChartMetadata.test.ts index 1be0b3d550..d662264831 100644 --- a/packages/superset-ui-chart/test/models/ChartMetadata.test.ts +++ b/packages/superset-ui-chart/test/models/ChartMetadata.test.ts @@ -30,4 +30,25 @@ describe('ChartMetadata', () => { expect(metadata.canBeAnnotationType('invalid-type')).toBeFalsy(); }); }); + describe('.clone()', () => { + const metadata = new ChartMetadata({ + name: 'test chart', + credits: [], + description: 'some kind of chart', + canBeAnnotationTypes: ['event'], + thumbnail: 'test.png', + }); + const clone = metadata.clone(); + + it('returns a new instance', () => { + expect(metadata).not.toBe(clone); + }); + it('returns a new instance with same field values', () => { + expect(metadata.name).toEqual(clone.name); + expect(metadata.credits).toEqual(clone.credits); + expect(metadata.description).toEqual(clone.description); + expect(metadata.canBeAnnotationTypes).toEqual(clone.canBeAnnotationTypes); + expect(metadata.thumbnail).toEqual(clone.thumbnail); + }); + }); }); From 5ea98934b553ef65619155d0b40cfd9eeeb3c164 Mon Sep 17 00:00:00 2001 From: Krist Wongsuphasawat Date: Wed, 27 Feb 2019 14:39:04 -0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=F0=9F=90=9B=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/superset-ui-chart/src/models/ChartMetadata.ts | 2 +- packages/superset-ui-chart/test/models/ChartMetadata.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/superset-ui-chart/src/models/ChartMetadata.ts b/packages/superset-ui-chart/src/models/ChartMetadata.ts index b2c3a7340f..53f0a5f1a6 100644 --- a/packages/superset-ui-chart/src/models/ChartMetadata.ts +++ b/packages/superset-ui-chart/src/models/ChartMetadata.ts @@ -59,10 +59,10 @@ export default class ChartMetadata { clone() { return new ChartMetadata({ - name: this.name, canBeAnnotationTypes: this.canBeAnnotationTypes, credits: this.credits, description: this.description, + name: this.name, show: this.show, supportedAnnotationTypes: this.supportedAnnotationTypes, thumbnail: this.thumbnail, diff --git a/packages/superset-ui-chart/test/models/ChartMetadata.test.ts b/packages/superset-ui-chart/test/models/ChartMetadata.test.ts index d662264831..e46cfc911a 100644 --- a/packages/superset-ui-chart/test/models/ChartMetadata.test.ts +++ b/packages/superset-ui-chart/test/models/ChartMetadata.test.ts @@ -18,9 +18,9 @@ describe('ChartMetadata', () => { describe('.canBeAnnotationType(type)', () => { const metadata = new ChartMetadata({ name: 'test chart', + canBeAnnotationTypes: ['event'], credits: [], description: 'some kind of chart', - canBeAnnotationTypes: ['event'], thumbnail: 'test.png', }); it('returns true if can', () => { @@ -33,9 +33,9 @@ describe('ChartMetadata', () => { describe('.clone()', () => { const metadata = new ChartMetadata({ name: 'test chart', + canBeAnnotationTypes: ['event'], credits: [], description: 'some kind of chart', - canBeAnnotationTypes: ['event'], thumbnail: 'test.png', }); const clone = metadata.clone();