Skip to content

Commit

Permalink
fix: remove "limit: 1" default from locations array
Browse files Browse the repository at this point in the history
  • Loading branch information
alexey-yarmosh committed Jun 29, 2023
1 parent 450b4f6 commit 3250f64
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 11 deletions.
15 changes: 11 additions & 4 deletions src/measurement/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export class MeasurementStore {
const results = this.probesToResults(probes, request.type);
const probesAwaitingTtl = config.get<number>('measurement.timeout') + 5;
const startTime = new Date();
let measurement: MeasurementRecord = {
const measurement: MeasurementRecord = {
id,
type: request.type,
status: 'in-progress',
Expand All @@ -68,13 +68,12 @@ export class MeasurementStore {
measurementOptions: request.measurementOptions,
results,
};
const defaults = getDefaults(request);
measurement = substractObjects(measurement, defaults) as MeasurementRecord;
const measurementWithoutDefaults = this.removeDefaults(measurement, request);

await Promise.all([
this.redis.hSet('gp:in-progress', id, startTime.getTime()),
this.redis.set(getMeasurementKey(id, 'probes_awaiting'), probes.length, { EX: probesAwaitingTtl }),
this.redis.json.set(key, '$', measurement),
this.redis.json.set(key, '$', measurementWithoutDefaults),
this.redis.expire(key, config.get<number>('measurement.resultTTL')),
]);

Expand Down Expand Up @@ -154,6 +153,14 @@ export class MeasurementStore {
}, intervalTime);
}

removeDefaults (measurement: MeasurementRecord, request: MeasurementRequest): Partial<MeasurementRecord> {
const defaults = getDefaults(request);
// Remove `"limit": 1` from locations. E.g. [{"country": "US", "limit": 1}] => [{"country": "US"}]
measurement.locations = measurement.locations.map(location => location.limit === 1 ? _.omit(location, 'limit') : location);

return substractObjects(measurement, defaults) as Partial<MeasurementRecord>;
}

probesToResults (probes: Probe[], type: string) {
const results = probes.map(probe => ({
probe: {
Expand Down
4 changes: 2 additions & 2 deletions src/measurement/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,9 @@ export type MeasurementRecord = {
createdAt: string;
updatedAt: string;
target: string;
limit?: number;
limit: number;
probesCount: number;
locations?: LocationWithLimit[];
locations: LocationWithLimit[];
measurementOptions?: MeasurementOptions;
results: MeasurementResult[];
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ describe('Create measurement request', () => {
status: 'in-progress',
target: 'jsdelivr.com',
probesCount: 1,
locations: [{ country: 'US', limit: 1 }],
locations: [{ country: 'US' }],
measurementOptions: { packets: 4 },
results: [
{
Expand Down Expand Up @@ -139,7 +139,7 @@ describe('Create measurement request', () => {
status: 'in-progress',
target: 'jsdelivr.com',
probesCount: 1,
locations: [{ country: 'US', limit: 1 }],
locations: [{ country: 'US' }],
measurementOptions: { packets: 4 },
results: [
{
Expand Down Expand Up @@ -178,7 +178,7 @@ describe('Create measurement request', () => {
status: 'in-progress',
target: 'jsdelivr.com',
probesCount: 1,
locations: [{ country: 'US', limit: 1 }],
locations: [{ country: 'US' }],
measurementOptions: { packets: 4 },
results: [
{
Expand Down Expand Up @@ -223,7 +223,7 @@ describe('Create measurement request', () => {
status: 'finished',
target: 'jsdelivr.com',
probesCount: 1,
locations: [{ country: 'US', limit: 1 }],
locations: [{ country: 'US' }],
measurementOptions: { packets: 4 },
results: [
{
Expand Down
2 changes: 1 addition & 1 deletion test/tests/integration/measurement/timeout-result.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ describe('Timeout results', () => {
status: 'finished',
target: 'jsdelivr.com',
probesCount: 1,
locations: [{ country: 'US', limit: 1 }],
locations: [{ country: 'US' }],
measurementOptions: { packets: 4 },
results: [
{
Expand Down

0 comments on commit 3250f64

Please sign in to comment.