* Added validation for required command line options in the `CommandLine` class to ensure necessary parameters are provided. * Updated `TestConfiguration` to store and expose the logging level from command line options. * Refactored `BrowserstackApi` to improve method naming and added content type headers for API requests. * Changed `SupportedBrowser` type to be exported for better accessibility. * Updated `Page` and `SubscribingPage` classes to use a consistent browser import and improved constructor parameters.
84 lines
2.1 KiB
TypeScript
84 lines
2.1 KiB
TypeScript
import type {CommandLineOptions} from './CommandLine';
|
|
import {LoggingLevel} from '../logger/LoggingLevel';
|
|
|
|
type ApplicationCredentials = {
|
|
applicationId: string;
|
|
secret: string;
|
|
};
|
|
|
|
type Uri = {
|
|
pcast: string;
|
|
ingest: string | undefined;
|
|
channel: string | undefined;
|
|
publisher: string | undefined;
|
|
};
|
|
|
|
type BrowserstackConfiguration = {
|
|
enabled: boolean;
|
|
local: boolean;
|
|
user: string;
|
|
key: string;
|
|
};
|
|
|
|
export default class TestConfiguration {
|
|
private readonly _applicationCredentials: ApplicationCredentials;
|
|
private readonly _uri: Uri;
|
|
private readonly _viewers: string[];
|
|
private readonly _publishers: string[];
|
|
private readonly _tests: string[];
|
|
private readonly _browserstack: BrowserstackConfiguration;
|
|
private readonly _logLevel: LoggingLevel;
|
|
|
|
constructor(commandLineOptions: CommandLineOptions) {
|
|
this._applicationCredentials = {
|
|
applicationId: commandLineOptions.applicationId,
|
|
secret: commandLineOptions.secret
|
|
};
|
|
|
|
this._uri = {
|
|
pcast: commandLineOptions.pcastUri,
|
|
ingest: commandLineOptions.ingestUri,
|
|
channel: commandLineOptions.channelUri,
|
|
publisher: commandLineOptions.publisherUri
|
|
};
|
|
|
|
this._viewers = commandLineOptions.viewers;
|
|
this._publishers = commandLineOptions.publishers;
|
|
this._tests = commandLineOptions.tests;
|
|
this._logLevel = commandLineOptions.logLevel;
|
|
this._browserstack = {
|
|
enabled: commandLineOptions.useBrowserstack,
|
|
local: commandLineOptions.useBrowserstackLocal,
|
|
user: commandLineOptions.browserstackUser,
|
|
key: commandLineOptions.browserstackKey
|
|
};
|
|
}
|
|
|
|
get applicationCredentials(): ApplicationCredentials {
|
|
return this._applicationCredentials;
|
|
}
|
|
|
|
get uri(): Uri {
|
|
return this._uri;
|
|
}
|
|
|
|
get viewers(): string[] {
|
|
return this._viewers;
|
|
}
|
|
|
|
get publishers(): string[] {
|
|
return this._publishers;
|
|
}
|
|
|
|
get tests(): string[] {
|
|
return this._tests;
|
|
}
|
|
|
|
get browserstack(): BrowserstackConfiguration {
|
|
return this._browserstack;
|
|
}
|
|
|
|
get logLevel(): LoggingLevel {
|
|
return this._logLevel;
|
|
}
|
|
} |