Skip to content

Commit e4c8607

Browse files
committed
fixed unit tests
1 parent 18c89b5 commit e4c8607

File tree

5 files changed

+72
-33
lines changed

5 files changed

+72
-33
lines changed

packages/core/src/configuration/Configuration.ts

Lines changed: 53 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { UserInfo } from "../models/data/UserInfo.js";
77
import { HeartbeatPlugin } from "../plugins/default/HeartbeatPlugin.js";
88
import { ReferenceIdPlugin } from "../plugins/default/ReferenceIdPlugin.js";
99
import { EventPluginContext } from "../plugins/EventPluginContext.js";
10-
import { EventPluginManager } from "../plugins/EventPluginManager.js";
1110
import { IEventPlugin } from "../plugins/IEventPlugin.js";
1211
import { DefaultEventQueue } from "../queue/DefaultEventQueue.js";
1312
import { IEventQueue } from "../queue/IEventQueue.js";
@@ -19,7 +18,6 @@ import { InMemoryStorageProvider } from "../storage/InMemoryStorageProvider.js";
1918
import { IStorageProvider } from "../storage/IStorageProvider.js";
2019
import { ISubmissionClient } from "../submission/ISubmissionClient.js";
2120
import { IConfigurationSettings } from "./IConfigurationSettings.js";
22-
import { SettingsManager } from "./SettingsManager.js";
2321
import { guid, merge } from "../Utils.js";
2422
import { KnownEventDataKeys } from "../models/Event.js";
2523

@@ -58,14 +56,14 @@ export class Configuration {
5856
public environmentInfoCollector: IEnvironmentInfoCollector;
5957
public errorParser: IErrorParser;
6058
public lastReferenceIdManager: ILastReferenceIdManager = new DefaultLastReferenceIdManager();
61-
public log: ILog;
59+
public log: ILog = new NullLog();
6260
public moduleCollector: IModuleCollector;
6361
public requestInfoCollector: IRequestInfoCollector;
6462

6563
/**
6664
* Maximum number of events that should be sent to the server together in a batch. (Defaults to 50)
6765
*/
68-
public submissionBatchSize: number;
66+
public submissionBatchSize: number = 50;
6967
public submissionClient: ISubmissionClient;
7068

7169
/**
@@ -74,9 +72,9 @@ export class Configuration {
7472
*/
7573
public settings: Record<string, string> = {};
7674

77-
public storage: IStorageProvider;
75+
public storage: IStorageProvider = new InMemoryStorageProvider();
7876

79-
public queue: IEventQueue;
77+
public queue: IEventQueue = new DefaultEventQueue(this);
8078

8179
/**
8280
* The API key that will be used when sending events to the server.
@@ -149,30 +147,61 @@ export class Configuration {
149147
*/
150148
private _handlers: Array<(config: Configuration) => void> = [];
151149

152-
public apply(configSettings: IConfigurationSettings): void {
150+
public apply(configSettings?: IConfigurationSettings): void {
153151
function inject<T>(functionOrValue: T | ((config: Configuration) => T)) {
154152
return functionOrValue instanceof Function ? functionOrValue(this) : functionOrValue;
155153
}
156154

157155
// TODO: Handle this being called multiple times.
158156
configSettings = merge(Configuration.defaults, configSettings);
159-
this.log = inject(configSettings.log) || new NullLog();
160-
this.apiKey = configSettings.apiKey;
161-
this.serverUrl = configSettings.serverUrl;
162-
this.configServerUrl = configSettings.configServerUrl;
163-
this.heartbeatServerUrl = configSettings.heartbeatServerUrl;
164-
this.updateSettingsWhenIdleInterval = configSettings.updateSettingsWhenIdleInterval;
165-
this.includePrivateInformation = configSettings.includePrivateInformation;
166-
167-
this.environmentInfoCollector = inject(configSettings.environmentInfoCollector);
168-
this.errorParser = inject(configSettings.errorParser);
169-
this.lastReferenceIdManager = inject(configSettings.lastReferenceIdManager) || new DefaultLastReferenceIdManager();
170-
this.moduleCollector = inject(configSettings.moduleCollector);
171-
this.requestInfoCollector = inject(configSettings.requestInfoCollector);
172-
this.submissionBatchSize = inject(configSettings.submissionBatchSize) || 50;
173-
this.submissionClient = inject(configSettings.submissionClient);
174-
this.storage = inject(configSettings.storage) || new InMemoryStorageProvider();
175-
this.queue = inject(configSettings.queue) || new DefaultEventQueue(this);
157+
if (configSettings.apiKey) {
158+
this.apiKey = configSettings.apiKey;
159+
}
160+
if (configSettings.serverUrl) {
161+
this.serverUrl = configSettings.serverUrl;
162+
}
163+
if (configSettings.configServerUrl) {
164+
this.configServerUrl = configSettings.configServerUrl;
165+
}
166+
if (configSettings.heartbeatServerUrl) {
167+
this.heartbeatServerUrl = configSettings.heartbeatServerUrl;
168+
}
169+
if (configSettings.updateSettingsWhenIdleInterval !== undefined) {
170+
this.updateSettingsWhenIdleInterval = configSettings.updateSettingsWhenIdleInterval;
171+
}
172+
if (configSettings.includePrivateInformation !== undefined) {
173+
this.includePrivateInformation = configSettings.includePrivateInformation;
174+
}
175+
if (configSettings.submissionBatchSize !== undefined) {
176+
this.submissionBatchSize = configSettings.submissionBatchSize;
177+
}
178+
if (configSettings.log) {
179+
this.log = inject(configSettings.log);
180+
}
181+
if (configSettings.environmentInfoCollector) {
182+
this.environmentInfoCollector = inject(configSettings.environmentInfoCollector);
183+
}
184+
if (configSettings.errorParser) {
185+
this.errorParser = inject(configSettings.errorParser);
186+
}
187+
if (configSettings.lastReferenceIdManager) {
188+
this.lastReferenceIdManager = inject(configSettings.lastReferenceIdManager);
189+
}
190+
if (configSettings.moduleCollector) {
191+
this.moduleCollector = inject(configSettings.moduleCollector);
192+
}
193+
if (configSettings.requestInfoCollector) {
194+
this.requestInfoCollector = inject(configSettings.requestInfoCollector);
195+
}
196+
if (configSettings.submissionClient) {
197+
this.submissionClient = inject(configSettings.submissionClient);
198+
}
199+
if (configSettings.storage) {
200+
this.storage = inject(configSettings.storage);
201+
}
202+
if (configSettings.queue) {
203+
this.queue = inject(configSettings.queue);
204+
}
176205
}
177206

178207
/**

packages/core/test/configuration/Configuration.test.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ describe("Configuration", () => {
1010

1111
Configuration.defaults.apiKey = "test";
1212
config = new Configuration();
13+
config.apply();
1314
expect(config.apiKey).toBe("test");
1415

15-
config = new Configuration({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
16+
config = new Configuration();
17+
config.apply({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
1618
expect(config.apiKey).toBe("LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw");
1719

18-
config = new Configuration({ apiKey: null });
20+
config = new Configuration();
21+
config.apply({ apiKey: null });
1922
expect(config.apiKey).toBe("test");
2023
expect(config.includePrivateInformation).toBe(true);
2124
expect(config.includeUserName).toBe(true);
@@ -25,7 +28,8 @@ describe("Configuration", () => {
2528
expect(config.includePostData).toBe(true);
2629
expect(config.includeQueryString).toBe(true);
2730

28-
config = new Configuration({ includePrivateInformation: false });
31+
config = new Configuration();
32+
config.apply({ includePrivateInformation: false });
2933
expect(config.includePrivateInformation).toBe(false);
3034
expect(config.includeUserName).toBe(false);
3135
expect(config.includeMachineName).toBe(false);
@@ -45,7 +49,8 @@ describe("Configuration", () => {
4549
});
4650

4751
test("should not add duplicate plugin", () => {
48-
const config = new Configuration({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
52+
const config = new Configuration();
53+
config.apply({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
4954
expect(config.plugins).not.toBeNull();
5055
while (config.plugins.length > 0) {
5156
config.removePlugin(config.plugins[0]);
@@ -57,7 +62,8 @@ describe("Configuration", () => {
5762
});
5863

5964
test("should generate plugin name and priority", () => {
60-
const config = new Configuration({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
65+
const config = new Configuration();
66+
config.apply({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
6167
expect(config.plugins).not.toBeNull();
6268
while (config.plugins.length > 0) {
6369
config.removePlugin(config.plugins[0]);
@@ -70,7 +76,8 @@ describe("Configuration", () => {
7076
});
7177

7278
test("should sort plugins by priority", () => {
73-
const config = new Configuration({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
79+
const config = new Configuration();
80+
config.apply({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw", serverUrl: "http://localhost:5000" });
7481
expect(config.plugins).not.toBeNull();
7582
while (config.plugins.length > 0) {
7683
config.removePlugin(config.plugins[0]);

packages/core/test/configuration/SettingsManager.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import { SettingsManager } from "../../src/configuration/SettingsManager.js";
33

44
describe("SettingsManager", () => {
55
test("should call changed handler", (done) => {
6-
const config = new Configuration({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw" });
6+
const config = new Configuration();
7+
config.apply({ apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw" });
78

89
SettingsManager.onChanged((configuration: Configuration) => {
910
expect(configuration.settings).not.toBeUndefined();

packages/core/test/queue/DefaultEventQueue.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ describe("DefaultEventQueue", () => {
66
let config: Configuration;
77

88
beforeEach(() => {
9-
config = new Configuration({
9+
config = new Configuration();
10+
config.apply({
1011
apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw",
1112
serverUrl: "http://localhost:5000"
1213
});

packages/core/test/submission/TestSubmissionClient.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { Response } from "../../src/submission/Response.js";
66
import { TestSubmissionClient } from "./TestSubmissionClient.js"
77

88
describe("TestSubmissionClient", () => {
9-
const config: Configuration = new Configuration({
9+
const config: Configuration = new Configuration();
10+
config.apply({
1011
apiKey: "LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw",
1112
serverUrl: "http://server.localhost:5000",
1213
configServerUrl: "http://config.localhost:5000",

0 commit comments

Comments
 (0)