From 8915714cfa4adf7850b00d2abf748c704453a160 Mon Sep 17 00:00:00 2001 From: williamlardier Date: Wed, 5 Mar 2025 16:28:01 +0100 Subject: [PATCH] Improve Website implementation - Use private instead of _ - Update tests Issue: ARSN-462 --- lib/models/WebsiteConfiguration.ts | 65 ++++++++++--------- .../unit/models/WebsiteConfiguration.spec.js | 54 +++++++-------- 2 files changed, 60 insertions(+), 59 deletions(-) diff --git a/lib/models/WebsiteConfiguration.ts b/lib/models/WebsiteConfiguration.ts index f17844325..ae51e2f7a 100644 --- a/lib/models/WebsiteConfiguration.ts +++ b/lib/models/WebsiteConfiguration.ts @@ -25,8 +25,8 @@ export type Condition = { export type RoutingRuleParams = { redirect?: Redirect; condition?: Condition }; export class RoutingRule { - _redirect?: Redirect; - _condition?: Condition; + private redirect?: Redirect; + private condition?: Condition; /** * Represents a routing rule in a website configuration. @@ -37,8 +37,8 @@ export class RoutingRule { */ constructor(params?: RoutingRuleParams) { if (params) { - this._redirect = params.redirect; - this._condition = params.condition; + this.redirect = params.redirect; + this.condition = params.condition; } } @@ -48,8 +48,8 @@ export class RoutingRule { */ getRuleObject() { const rule = { - redirect: this._redirect, - condition: this._condition, + redirect: this.redirect, + condition: this.condition, }; return rule; } @@ -59,7 +59,7 @@ export class RoutingRule { * @return condition; */ getCondition() { - return this._condition; + return this.condition; } /** @@ -67,7 +67,7 @@ export class RoutingRule { * @return redirect; */ getRedirect() { - return this._redirect; + return this.redirect; } } @@ -84,10 +84,10 @@ export type WebsiteConfigurationParams = { }; export class WebsiteConfiguration { - _indexDocument?: string; - _errorDocument?: string; - _redirectAllRequestsTo?: RedirectAllRequestsTo; - _routingRules?: RoutingRule[]; + private indexDocument?: string; + private errorDocument?: string; + private redirectAllRequestsTo?: RedirectAllRequestsTo; + private routingRules?: RoutingRule[]; /** * Object that represents website configuration @@ -107,9 +107,9 @@ export class WebsiteConfiguration { */ constructor(params: WebsiteConfigurationParams) { if (params) { - this._indexDocument = params.indexDocument; - this._errorDocument = params.errorDocument; - this._redirectAllRequestsTo = params.redirectAllRequestsTo; + this.indexDocument = params.indexDocument; + this.errorDocument = params.errorDocument; + this.redirectAllRequestsTo = params.redirectAllRequestsTo; this.setRoutingRules(params.routingRules); } } @@ -120,12 +120,12 @@ export class WebsiteConfiguration { */ getConfig() { const base = { - indexDocument: this._indexDocument, - errorDocument: this._errorDocument, - redirectAllRequestsTo: this._redirectAllRequestsTo, + indexDocument: this.indexDocument, + errorDocument: this.errorDocument, + redirectAllRequestsTo: this.redirectAllRequestsTo, }; - if (this._routingRules) { - const routingRules = this._routingRules.map(r => r.getRuleObject()); + if (this.routingRules) { + const routingRules = this.routingRules.map(r => r.getRuleObject()); return { ...base, routingRules }; } return { ...base }; @@ -138,7 +138,7 @@ export class WebsiteConfiguration { * @param [obj.protocol] - protocol for redirecting all requests */ setRedirectAllRequestsTo(obj: { hostName: string; protocol?: string }) { - this._redirectAllRequestsTo = obj; + this.redirectAllRequestsTo = obj; } /** @@ -146,7 +146,7 @@ export class WebsiteConfiguration { * @return redirectAllRequestsTo; */ getRedirectAllRequestsTo() { - return this._redirectAllRequestsTo; + return this.redirectAllRequestsTo; } /** @@ -154,7 +154,7 @@ export class WebsiteConfiguration { * @param suffix - index document object key */ setIndexDocument(suffix: string) { - this._indexDocument = suffix; + this.indexDocument = suffix; } /** @@ -162,7 +162,7 @@ export class WebsiteConfiguration { * @return indexDocument */ getIndexDocument() { - return this._indexDocument; + return this.indexDocument; } /** @@ -170,7 +170,7 @@ export class WebsiteConfiguration { * @param key - error document object key */ setErrorDocument(key: string) { - this._errorDocument = key; + this.errorDocument = key; } /** @@ -178,7 +178,7 @@ export class WebsiteConfiguration { * @return errorDocument */ getErrorDocument() { - return this._errorDocument; + return this.errorDocument; } /** @@ -187,7 +187,7 @@ export class WebsiteConfiguration { */ setRoutingRules(array?: (RoutingRule | RoutingRuleParams)[]) { if (array) { - this._routingRules = array.map(rule => { + this.routingRules = array.map(rule => { if (rule instanceof RoutingRule) { return rule; } @@ -201,13 +201,13 @@ export class WebsiteConfiguration { * @param obj - rule to add to array */ addRoutingRule(obj?: RoutingRule | RoutingRuleParams) { - if (!this._routingRules) { - this._routingRules = []; + if (!this.routingRules) { + this.routingRules = []; } if (obj && obj instanceof RoutingRule) { - this._routingRules.push(obj); + this.routingRules.push(obj); } else if (obj) { - this._routingRules.push(new RoutingRule(obj)); + this.routingRules.push(new RoutingRule(obj)); } } @@ -216,6 +216,7 @@ export class WebsiteConfiguration { * @return - array of RoutingRule instances */ getRoutingRules(): RoutingRuleParams[] { - return this._routingRules ? this._routingRules.map(r => r.getRuleObject()) : []; + console.log('hehe', this.routingRules, this.routingRules?.map(r => r.getRuleObject())); + return this.routingRules?.map(r => r.getRuleObject()) ?? []; } } diff --git a/tests/unit/models/WebsiteConfiguration.spec.js b/tests/unit/models/WebsiteConfiguration.spec.js index df9bf9921..256e90673 100644 --- a/tests/unit/models/WebsiteConfiguration.spec.js +++ b/tests/unit/models/WebsiteConfiguration.spec.js @@ -21,16 +21,16 @@ const testRoutingRuleParams = { describe('RoutingRule class', () => { it('should initialize even if no parameters are provided', done => { const routingRule = new RoutingRule(); - assert.strictEqual(routingRule._redirect, undefined); - assert.strictEqual(routingRule._condition, undefined); + assert.strictEqual(routingRule.redirect, undefined); + assert.strictEqual(routingRule.condition, undefined); done(); }); it('should return a new routing rule', done => { const routingRule = new RoutingRule(testRoutingRuleParams); - assert.deepStrictEqual(routingRule._redirect, + assert.deepStrictEqual(routingRule.redirect, testRoutingRuleParams.redirect); - assert.deepStrictEqual(routingRule._condition, + assert.deepStrictEqual(routingRule.condition, testRoutingRuleParams.condition); done(); }); @@ -53,10 +53,10 @@ describe('RoutingRule class', () => { describe('WebsiteConfiguration class', () => { it('should initialize even if no parameters are provided', done => { const websiteConfig = new WebsiteConfiguration(); - assert.strictEqual(websiteConfig._indexDocument, undefined); - assert.strictEqual(websiteConfig._errorDocument, undefined); - assert.strictEqual(websiteConfig._redirectAllRequestsTo, undefined); - assert.strictEqual(websiteConfig._routingRules, undefined); + assert.strictEqual(websiteConfig.indexDocument, undefined); + assert.strictEqual(websiteConfig.errorDocument, undefined); + assert.strictEqual(websiteConfig.redirectAllRequestsTo, undefined); + assert.strictEqual(websiteConfig.routingRules, undefined); done(); }); @@ -67,8 +67,8 @@ describe('WebsiteConfiguration class', () => { errorDocument: 'error.html', }; const websiteConfig = new WebsiteConfiguration(testWebsiteConfigParams); - assert.strictEqual(websiteConfig._indexDocument, 'index.html'); - assert.strictEqual(websiteConfig._errorDocument, 'error.html'); + assert.strictEqual(websiteConfig.indexDocument, 'index.html'); + assert.strictEqual(websiteConfig.errorDocument, 'error.html'); done(); }); @@ -81,9 +81,9 @@ describe('WebsiteConfiguration class', () => { }, }; const websiteConfig = new WebsiteConfiguration(testWebsiteConfigParams); - assert.strictEqual(websiteConfig._redirectAllRequestsTo.hostName, + assert.strictEqual(websiteConfig.redirectAllRequestsTo.hostName, 'test'); - assert.strictEqual(websiteConfig._redirectAllRequestsTo.protocol, + assert.strictEqual(websiteConfig.redirectAllRequestsTo.protocol, 'https'); done(); }); @@ -98,7 +98,7 @@ describe('WebsiteConfiguration class', () => { testWebsiteConfigParams.routingRules.push(testRoutingRule); testWebsiteConfigParams.routingRules.push(testRoutingRule); const websiteConfig = new WebsiteConfiguration(testWebsiteConfigParams); - assert.deepStrictEqual(websiteConfig._routingRules, + assert.deepStrictEqual(websiteConfig.routingRules, testWebsiteConfigParams.routingRules); done(); }); @@ -112,19 +112,19 @@ describe('WebsiteConfiguration class', () => { testWebsiteConfigParams.routingRules.push(testRoutingRuleParams); testWebsiteConfigParams.routingRules.push(testRoutingRuleParams); const websiteConfig = new WebsiteConfiguration(testWebsiteConfigParams); - assert.deepEqual(websiteConfig._routingRules[0]._condition, + assert.deepEqual(websiteConfig.routingRules[0].condition, testRoutingRuleParams.condition); - assert.deepEqual(websiteConfig._routingRules[1]._condition, + assert.deepEqual(websiteConfig.routingRules[1].condition, testRoutingRuleParams.condition); - assert.deepEqual(websiteConfig._routingRules[2]._condition, + assert.deepEqual(websiteConfig.routingRules[2].condition, testRoutingRuleParams.condition); - assert.deepEqual(websiteConfig._routingRules[0]._redirect, + assert.deepEqual(websiteConfig.routingRules[0].redirect, testRoutingRuleParams.redirect); - assert.deepEqual(websiteConfig._routingRules[1]._redirect, + assert.deepEqual(websiteConfig.routingRules[1].redirect, testRoutingRuleParams.redirect); - assert.deepEqual(websiteConfig._routingRules[2]._redirect, + assert.deepEqual(websiteConfig.routingRules[2].redirect, testRoutingRuleParams.redirect); - assert(websiteConfig._routingRules[0] instanceof RoutingRule); + assert(websiteConfig.routingRules[0] instanceof RoutingRule); done(); }); @@ -160,11 +160,11 @@ describe('WebsiteConfiguration class', () => { const websiteConfig = new WebsiteConfiguration(); const routingRules = [testRoutingRuleParams]; websiteConfig.setRoutingRules(routingRules); - assert.strictEqual(websiteConfig.getRoutingRules()[0]._condition, + assert.strictEqual(websiteConfig.getRoutingRules()[0].condition, routingRules[0].condition); - assert.strictEqual(websiteConfig.getRoutingRules()[0]._redirect, + assert.strictEqual(websiteConfig.getRoutingRules()[0].redirect, routingRules[0].redirect); - assert(websiteConfig._routingRules[0] instanceof RoutingRule); + assert(websiteConfig.routingRules[0] instanceof RoutingRule); done(); }); }); @@ -172,11 +172,11 @@ describe('WebsiteConfiguration class', () => { it('addRoutingRule should add a RoutingRule to routingRules', done => { const websiteConfig = new WebsiteConfiguration(); websiteConfig.addRoutingRule(testRoutingRuleParams); - assert(Array.isArray(websiteConfig._routingRules)); - assert.strictEqual(websiteConfig._routingRules.length, 1); - assert.strictEqual(websiteConfig._routingRules[0].getCondition(), + assert(Array.isArray(websiteConfig.routingRules)); + assert.strictEqual(websiteConfig.routingRules.length, 1); + assert.strictEqual(websiteConfig.routingRules[0].getCondition(), testRoutingRuleParams.condition); - assert.strictEqual(websiteConfig._routingRules[0].getRedirect(), + assert.strictEqual(websiteConfig.routingRules[0].getRedirect(), testRoutingRuleParams.redirect); done(); });