import { DataPCSBase } from './datafile/data.pcs';
|
import { browser } from '../e2elib/node_modules/protractor';
|
|
/**
|
* Dynamic data loading based on e2e.json configuration (params > testdata > name).
|
*/
|
export class DataProvider {
|
private static _dataProvider: DataProvider;
|
|
// Data organized by functional categories
|
private static _dataPCS: DataPCSBase;
|
|
// Get singleton instance of DataProvider
|
public static getInstance(): DataProvider {
|
if (DataProvider._dataProvider === undefined) {
|
DataProvider._dataProvider = new DataProvider();
|
}
|
|
return DataProvider._dataProvider;
|
}
|
|
private constructor() {
|
// To avoid initialization externally
|
}
|
|
/**
|
* Get pcs related data.
|
*/
|
public async getDataPCS(): Promise<DataPCSBase> {
|
if (DataProvider._dataPCS === undefined) {
|
const path = `./datafile/${browser.params.testdata.name}/data.pcs`;
|
const { dataPCS}: { dataPCS: DataPCSBase } = await import(path);
|
DataProvider._dataPCS = dataPCS;
|
}
|
return DataProvider._dataPCS;
|
}
|
}
|