yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
  }
}