Skip to content

Commit

Permalink
fix(claim_validator): updated the forEach to findIndex, added test case
Browse files Browse the repository at this point in the history
  • Loading branch information
AmanAgarwal041 committed Dec 13, 2024
1 parent b11ad92 commit c721f48
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 12 deletions.
2 changes: 1 addition & 1 deletion bundle/bundle.js

Large diffs are not rendered by default.

9 changes: 4 additions & 5 deletions lib/build/utils/sessionClaimValidatorStore.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 3 additions & 6 deletions lib/ts/utils/sessionClaimValidatorStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,9 @@ export class SessionClaimValidatorStore {
private static claimValidatorsAddedByOtherRecipes: SessionClaimValidator[] = [];

static addClaimValidatorFromOtherRecipe = (builder: SessionClaimValidator) => {
let existingBuilderIdIndex: number = -1;
SessionClaimValidatorStore.claimValidatorsAddedByOtherRecipes.forEach((claimValidator, index) => {
if (claimValidator.id === builder.id) {
existingBuilderIdIndex = index;
}
});
const existingBuilderIdIndex: number = SessionClaimValidatorStore.claimValidatorsAddedByOtherRecipes.findIndex(
claimValidator => claimValidator.id === builder.id
);

/*
* Updating the claim validator in the claimValidatorsAddedByOtherRecipes list if the
Expand Down
41 changes: 41 additions & 0 deletions test/sessionClaimValidator.Store.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* Copyright (c) 2024, VRAI Labs and/or its affiliates. All rights reserved.
*
* This software is licensed under the Apache License, Version 2.0 (the
* "License") as published by the Apache Software Foundation.
*
* You may not use this file except in compliance with the License. You may
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

const assert = require("assert");
const { BooleanClaim } = require("../lib/build");
const { SessionClaimValidatorStore } = require("../lib/build/utils/sessionClaimValidatorStore");

describe("SessionClaimValidatorStore:addClaimValidatorFromOtherRecipe", () => {
it("SessionClaimValidatorStore addClaimValidatorFromOtherRecipe should update the existing validator rather than adding new one", function () {
const claimFirst = new BooleanClaim({
id: "st-test",
refresh: () => {},
defaultMaxAgeInSeconds: 10
});

const claimSecond = new BooleanClaim({
id: "st-test",
refresh: () => {},
defaultMaxAgeInSeconds: 10
});

SessionClaimValidatorStore.addClaimValidatorFromOtherRecipe(claimFirst);
SessionClaimValidatorStore.addClaimValidatorFromOtherRecipe(claimSecond);

const claimValidators = SessionClaimValidatorStore.getClaimValidatorsAddedByOtherRecipes();

assert.strictEqual(claimValidators.length, 1);
});
});

0 comments on commit c721f48

Please sign in to comment.