Skip to content

Commit

Permalink
feat: explicitly type sitewise query (#59)
Browse files Browse the repository at this point in the history
  • Loading branch information
boweihan committed Feb 16, 2022
1 parent a1615f9 commit 96102b9
Show file tree
Hide file tree
Showing 15 changed files with 111 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotBarChart } from './iot-bar-chart';
import { Components } from '../../components.d';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { createMockSource } from '../../testing/createMockSource';
import { DATA_STREAM } from '../../testing/mockWidgetProperties';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
Expand Down Expand Up @@ -33,9 +33,9 @@ const barChartSpecPage = async (propOverrides: Partial<Components.IotBarChart> =
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
8 changes: 4 additions & 4 deletions packages/components/src/components/iot-kpi/iot-kpi.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { newSpecPage } from '@stencil/core/testing';
import { SiteWiseDataStreamQuery, initialize, query } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotKpi } from './iot-kpi';
import { Components } from '../../components.d';
Expand Down Expand Up @@ -33,9 +33,9 @@ const kpiSpecPage = async (propOverrides: Partial<Components.IotKpi> = {}) => {
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Components } from '../../components.d';
import { createMockSource } from '../../testing/createMockSource';
import { DATA_STREAM } from '../../testing/mockWidgetProperties';
import { CustomHTMLElement } from '../../testing/types';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
import { update } from '../../testing/update';
import { mockSiteWiseSDK } from '../../testing/mocks/siteWiseSDK';
Expand Down Expand Up @@ -33,9 +33,9 @@ const lineChartSpecPage = async (propOverrides: Partial<Components.IotKpi> = {})
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotScatterChart } from './iot-scatter-chart';
import { Components } from '../../components.d';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { createMockSource } from '../../testing/createMockSource';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
import { CustomHTMLElement } from '../../testing/types';
Expand Down Expand Up @@ -33,9 +33,9 @@ const scatterChartSpecPage = async (propOverrides: Partial<Components.IotScatter
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotStatusGrid } from './iot-status-grid';
import { Components } from '../../components.d';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { createMockSource } from '../../testing/createMockSource';
import { DATA_STREAM } from '../../testing/mockWidgetProperties';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
Expand Down Expand Up @@ -33,9 +33,9 @@ const statusGridSpecPage = async (propOverrides: Partial<Components.IotKpi> = {}
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotStatusTimeline } from './iot-status-timeline';
import { Components } from '../../components.d';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { createMockSource } from '../../testing/createMockSource';
import { DATA_STREAM } from '../../testing/mockWidgetProperties';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
Expand Down Expand Up @@ -35,9 +35,9 @@ const statusTimelineSpecPage = async (propOverrides: Partial<Components.IotStatu
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import { IotTable } from './iot-table';
import { Components } from '../../components.d';
import { initialize, query, SiteWiseDataStreamQuery } from '@iot-app-kit/core';
import { initialize, query } from '@iot-app-kit/core';
import { createMockSource } from '../../testing/createMockSource';
import { DATA_STREAM } from '../../testing/mockWidgetProperties';
import { IotTimeSeriesConnector } from '../iot-time-series-connector.ts/iot-time-series-connector';
Expand Down Expand Up @@ -33,9 +33,9 @@ const tableSpecPage = async (propOverrides: Partial<Components.IotKpi> = {}) =>
isEditing: false,
viewport,
queries: [
query.iotsitewise.timeSeriesData([
{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] },
]),
query.iotsitewise.timeSeriesData({
assets: [{ assetId: 'some-asset-id', properties: [{ propertyId: 'some-property-id' }] }],
}),
],
...propOverrides,
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
import { newSpecPage } from '@stencil/core/testing';
import { MinimalLiveViewport } from '@synchro-charts/core';
import flushPromises from 'flush-promises';
import {
initialize,
SiteWiseDataStreamQuery,
IoTAppKitInitInputs,
query,
createMockSiteWiseSDK,
} from '@iot-app-kit/core';
import { initialize, IoTAppKitInitInputs, query, createMockSiteWiseSDK } from '@iot-app-kit/core';
import { IotTimeSeriesConnector } from './iot-time-series-connector';
import { createMockSource } from '../../testing/createMockSource';
import { update } from '../../testing/update';
Expand Down Expand Up @@ -106,7 +100,7 @@ it('renders', async () => {
await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([])
.timeSeriesData({ assets: [] })
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
});

Expand All @@ -127,10 +121,12 @@ it('provides data streams', async () => {
await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([
{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] },
{ assetId: assetId_2, properties: [{ propertyId: propertyId_2 }] },
])
.timeSeriesData({
assets: [
{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] },
{ assetId: assetId_2, properties: [{ propertyId: propertyId_2 }] },
],
})
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
});

Expand Down Expand Up @@ -167,7 +163,9 @@ it('populates the name, unit, and data type from the asset model information fro
await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] }])
.timeSeriesData({
assets: [{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] }],
})
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
});

Expand Down Expand Up @@ -204,14 +202,16 @@ it('populates the name, unit, and data type from the asset model information fro
const { connector, page } = await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([])
.timeSeriesData({ assets: [] })
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
});

await flushPromises();

connector.provider = query.iotsitewise
.timeSeriesData([{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] }])
.timeSeriesData({
assets: [{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] }],
})
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } });

await page.waitForChanges();
Expand Down Expand Up @@ -241,17 +241,19 @@ it('updates with new queries', async () => {
const { connector, page } = await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([])
.timeSeriesData({ assets: [] })
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
});

await flushPromises();

connector.provider = query.iotsitewise
.timeSeriesData([
{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] },
{ assetId: assetId_2, properties: [{ propertyId: propertyId_2 }] },
])
.timeSeriesData({
assets: [
{ assetId: assetId_1, properties: [{ propertyId: propertyId_1 }] },
{ assetId: assetId_2, properties: [{ propertyId: propertyId_2 }] },
],
})
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } });

await page.waitForChanges();
Expand Down Expand Up @@ -281,7 +283,7 @@ it('binds styles to data streams', async () => {
await connectorSpecPage({
renderFunc,
provider: query.iotsitewise
.timeSeriesData([{ assetId, properties: [{ propertyId, refId: REF_ID }] }])
.timeSeriesData({ assets: [{ assetId, properties: [{ propertyId, refId: REF_ID }] }] })
.build(appKit.session('widgetId'), { viewport, settings: { fetchMostRecentBeforeEnd: true } }),
styleSettings: {
[REF_ID]: {
Expand Down
10 changes: 2 additions & 8 deletions packages/components/src/testing/createMockSource.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
// A simple mock data source, which will always immediately return a successful response of your choosing.
import {
AnyDataStreamQuery,
DataSource,
DataSourceRequest,
SiteWiseDataStreamQuery,
DataStream,
} from '@iot-app-kit/core';
import { DataSource, DataSourceRequest, SiteWiseDataStreamQuery, DataStream } from '@iot-app-kit/core';
import { toDataStreamId, toSiteWiseAssetProperty } from './dataStreamId';

const dataStreamIds = (query: SiteWiseDataStreamQuery) =>
Expand All @@ -21,7 +15,7 @@ const associatedProperty = (query: SiteWiseDataStreamQuery, dataStreamId: string

export const createMockSource = (dataStreams: DataStream[]): DataSource => ({
name: 'site-wise',
initiateRequest: ({ onSuccess }: DataSourceRequest<AnyDataStreamQuery>) => onSuccess(dataStreams),
initiateRequest: ({ onSuccess }: DataSourceRequest<SiteWiseDataStreamQuery>) => onSuccess(dataStreams),
getRequestsFromQuery: ({ query }) =>
dataStreams
.filter(({ id }) => dataStreamIds(query).includes(id))
Expand Down
14 changes: 8 additions & 6 deletions packages/components/src/testing/renderChart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,14 @@ const end = new Date(start.getTime() + 5 * MINUTE_IN_MS);
const defaultViewport = { start, end };

const defaultQueries = [
query.iotsitewise.timeSeriesData([
{
assetId: 'some-asset-id',
properties: [{ propertyId: 'some-property-id' }],
},
]),
query.iotsitewise.timeSeriesData({
assets: [
{
assetId: 'some-asset-id',
properties: [{ propertyId: 'some-property-id' }],
},
],
}),
];

export const renderChart = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ const AGGREGATED_DATA_PROPERTY = 'd0dc79be-0dc2-418c-ac23-26f33cdb4b8b';
const AGGREGATED_DATA_PROPERTY_2 = '69607dc2-5fbe-416d-aac2-0382018626e4';

export const AGGREGATED_DATA_QUERY = {
source: 'site-wise',
assets: [
{
assetId: AGGREGATED_DATA_ASSET,
Expand Down

0 comments on commit 96102b9

Please sign in to comment.