diff --git a/CHANGELOG.md b/CHANGELOG.md index c7768d8e..34a1f126 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelogs +## 8.3.4 +- Add all new profiles for book facilities UAT + ## 8.3.3 - Add new profiles for book facilities UAT diff --git a/package-lock.json b/package-lock.json index 59962d4c..3c92060f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@govtechsg/singpass-myinfo-oidc-helper", - "version": "8.3.3", + "version": "8.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@govtechsg/singpass-myinfo-oidc-helper", - "version": "8.3.3", + "version": "8.3.4", "license": "MIT", "dependencies": { "@js-joda/core": "^5.6.1", diff --git a/package.json b/package.json index 5da62640..de4e0cc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govtechsg/singpass-myinfo-oidc-helper", - "version": "8.3.3", + "version": "8.3.4", "description": "Helper for building a Relying Party to integrate with Singpass OIDC and MyInfo person basic API", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/myinfo/fake/profiles/fake-profile.ts b/src/myinfo/fake/profiles/fake-profile.ts index c853c5f0..56d3bae7 100644 --- a/src/myinfo/fake/profiles/fake-profile.ts +++ b/src/myinfo/fake/profiles/fake-profile.ts @@ -88,12 +88,33 @@ export enum ProfileArchetype { MRS_ICA_SC_SINGLE_MOMMY_MAIN_SCENARIO_8 = "Mrs SG Single Mommy Main Applicant Scenario Eight", // For Book Fac UAT MR_CCK_RESIDENT_1 = "Mr CCK Resident 1", + MS_CCK_RESIDENT_2 = "Ms CCK Resident 2", + MR_CCK_RESIDENT_3 = "Mr CCK Resident 3", + MR_CCK_RESIDENT_4 = "Mr CCK Resident 4", + MS_CCK_RESIDENT_5 = "Ms CCK Resident 5", + MR_CCK_RESIDENT_6 = "Mr CCK Resident 6", + MS_HBP_RESIDENT_1 = "Ms HBP Resident 1", + MR_HBP_RESIDENT_2 = "Mr HBP Resident 2", + MS_HBP_RESIDENT_3 = "Ms HBP Resident 3", + MS_HBP_RESIDENT_4 = "Ms HBP Resident 4", + MR_HBP_RESIDENT_5 = "Mr HBP Resident 5", MS_HBP_RESIDENT_6 = "Ms HBP Resident 6", + MR_MP_RESIDENT_1 = "Mr MP Resident 1", + MS_MP_RESIDENT_2 = "Ms MP Resident 2", + MR_MP_RESIDENT_3 = "Mr MP Resident 3", MR_MP_RESIDENT_4 = "Mr MP Resident 4", - MR_NS_RESIDENT_5 = "Mr NS Resident 5", - MS_PRPG_RESIDENT_1 = "Ms PRPG Resident 1", + MS_MP_RESIDENT_5 = "Ms MP Resident 5", MR_MP_RESIDENT_6 = "Mr MP Resident 6", + MS_NS_RESIDENT_1 = "Ms NS Resident 1", + MR_NS_RESIDENT_2 = "Mr NS Resident 2", + MR_NS_RESIDENT_3 = "Mr NS Resident 3", + MS_NS_RESIDENT_4 = "Ms NS Resident 4", + MR_NS_RESIDENT_5 = "Mr NS Resident 5", MS_NS_RESIDENT_6 = "Ms NS Resident 6", - MR_MP_RESIDENT_1 = "Mr MP Resident 1", - MR_HBP_RESIDENT_5 = "Mr HBP Resident 5", + MS_PRPG_RESIDENT_1 = "Ms PRPG Resident 1", + MS_PRPG_RESIDENT_2 = "Ms PRPG Resident 2", + MR_PRPG_RESIDENT_3 = "Mr PRPG Resident 3", + MR_PRPG_RESIDENT_4 = "Mr PRPG Resident 4", + MR_PRPG_RESIDENT_5 = "Mr PRPG Resident 5", + MR_PRPG_RESIDENT_6 = "Mr PRPG Resident 6", } diff --git a/src/myinfo/fake/profiles/fake-profiles.ts b/src/myinfo/fake/profiles/fake-profiles.ts index b76cc77b..b450d5b6 100644 --- a/src/myinfo/fake/profiles/fake-profiles.ts +++ b/src/myinfo/fake/profiles/fake-profiles.ts @@ -71,14 +71,35 @@ import { mrsICAMommyScenario5 } from "./mrICAMommyScenario5"; import { mrsICAMommyScenario6 } from "./mrICAMommyScenario6"; import { mrsICAMommyScenario8 } from "./mrICAMommyScenario8"; import { mrCckResident1 } from "./mrCckResident1"; +import { msCckResident2 } from "./msCckResident2"; +import { mrCckResident3 } from "./mrCckResident3"; +import { mrCckResident4 } from "./mrCckResident4"; +import { msCckResident5 } from "./msCckResident5"; +import { mrCckResident6 } from "./mrCckResident6"; +import { msHbpResident1 } from "./msHbpResident1"; +import { mrHbpResident2 } from "./mrHbpResident2"; +import { msHbpResident3 } from "./msHbpResident3"; +import { msHbpResident4 } from "./msHbpResident4"; +import { mrHbpResident5 } from "./mrHbpResident5"; import { msHbpResident6 } from "./msHbpResident6"; +import { mrMpResident1 } from "./mrMpResident1"; +import { msMpResident2 } from "./msMpResident2"; +import { mrMpResident3 } from "./mrMpResident3"; import { mrMpResident4 } from "./mrMpResident4"; -import { mrNsResident5 } from "./mrNsResident5"; -import { msPrpgResident1 } from "./msPrpgResident1"; +import { msMpResident5 } from "./msMpResident5"; import { mrMpResident6 } from "./mrMpResident6"; +import { msNsResident1 } from "./msNsResident1"; +import { mrNsResident2 } from "./mrNsResident2"; +import { mrNsResident3 } from "./mrNsResident3"; +import { msNsResident4 } from "./msNsResident4"; +import { mrNsResident5 } from "./mrNsResident5"; import { msNsResident6 } from "./msNsResident6"; -import { mrMpResident1 } from "./mrMpResident1"; -import { mrHbpResident5 } from "./mrHbpResident5"; +import { msPrpgResident1 } from "./msPrpgResident1"; +import { msPrpgResident2 } from "./msPrpgResident2"; +import { mrPrpgResident3 } from "./mrPrpgResident3"; +import { mrPrpgResident4 } from "./mrPrpgResident4"; +import { mrPrpgResident5 } from "./mrPrpgResident5"; +import { mrPrpgResident6 } from "./mrPrpgResident6"; /** * Exhaustive list of our MyInfo archetype profiles @@ -158,12 +179,33 @@ export const profiles = [ mrsICAMommyScenario6, mrsICAMommyScenario8, mrCckResident1, + msCckResident2, + mrCckResident3, + mrCckResident4, + msCckResident5, + mrCckResident6, + msHbpResident1, + mrHbpResident2, + msHbpResident3, + msHbpResident4, + mrHbpResident5, msHbpResident6, + mrMpResident1, + msMpResident2, + mrMpResident3, mrMpResident4, - mrNsResident5, - msPrpgResident1, + msMpResident5, mrMpResident6, + msNsResident1, + mrNsResident2, + mrNsResident3, + msNsResident4, + mrNsResident5, msNsResident6, - mrMpResident1, - mrHbpResident5, + msPrpgResident1, + msPrpgResident2, + mrPrpgResident3, + mrPrpgResident4, + mrPrpgResident5, + mrPrpgResident6, ]; diff --git a/src/myinfo/fake/profiles/mrCckResident3.ts b/src/myinfo/fake/profiles/mrCckResident3.ts new file mode 100644 index 00000000..606f8441 --- /dev/null +++ b/src/myinfo/fake/profiles/mrCckResident3.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S5823426E"; +const name = ProfileArchetype.MR_CCK_RESIDENT_3; + +export const mrCckResident3: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1958-05-15", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "275"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "16"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "406"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "CHOA CHU KANG AVENUE 3"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "680406"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrCckResident4.ts b/src/myinfo/fake/profiles/mrCckResident4.ts new file mode 100644 index 00000000..08115133 --- /dev/null +++ b/src/myinfo/fake/profiles/mrCckResident4.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S4991727I"; +const name = ProfileArchetype.MR_CCK_RESIDENT_4; + +export const mrCckResident4: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1949-01-11", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "891"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "441A"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "BUKIT BATOK WEST AVENUE 8"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "651441"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrCckResident6.ts b/src/myinfo/fake/profiles/mrCckResident6.ts new file mode 100644 index 00000000..53d290b6 --- /dev/null +++ b/src/myinfo/fake/profiles/mrCckResident6.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S4919079D"; +const name = ProfileArchetype.MR_CCK_RESIDENT_6; + +export const mrCckResident6: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1949-01-11", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "106"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "12"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "803D"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "KEAT HONG CLOSE"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "684803"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrHbpResident2.ts b/src/myinfo/fake/profiles/mrHbpResident2.ts new file mode 100644 index 00000000..34c0c109 --- /dev/null +++ b/src/myinfo/fake/profiles/mrHbpResident2.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8672262C"; +const name = ProfileArchetype.MR_HBP_RESIDENT_2; + +export const mrHbpResident2: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1986-09-28", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "161"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "13"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "311A"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "CLEMENTI AVENUE 4"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "121311"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrMpResident3.ts b/src/myinfo/fake/profiles/mrMpResident3.ts new file mode 100644 index 00000000..7cd1ca23 --- /dev/null +++ b/src/myinfo/fake/profiles/mrMpResident3.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S9965211Z"; +const name = ProfileArchetype.MR_MP_RESIDENT_3; + +export const mrMpResident3: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1999-09-21", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "211"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "60"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "CIRCUIT ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "370060"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrNsResident2.ts b/src/myinfo/fake/profiles/mrNsResident2.ts new file mode 100644 index 00000000..45a2c5ca --- /dev/null +++ b/src/myinfo/fake/profiles/mrNsResident2.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8993188F"; +const name = ProfileArchetype.MR_NS_RESIDENT_2; + +export const mrNsResident2: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1989-07-23", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "3549"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "855"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "YISHUN RING ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "760855"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrNsResident3.ts b/src/myinfo/fake/profiles/mrNsResident3.ts new file mode 100644 index 00000000..f04a9627 --- /dev/null +++ b/src/myinfo/fake/profiles/mrNsResident3.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S7680309I"; +const name = ProfileArchetype.MR_NS_RESIDENT_3; + +export const mrNsResident3: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1976-02-12", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "229"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "131"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "YISHUN STREET 11"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "760131"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrPrpgResident3.ts b/src/myinfo/fake/profiles/mrPrpgResident3.ts new file mode 100644 index 00000000..a28d9381 --- /dev/null +++ b/src/myinfo/fake/profiles/mrPrpgResident3.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8759130A"; +const name = ProfileArchetype.MR_PRPG_RESIDENT_3; + +export const mrPrpgResident3: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1987-11-30", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "145"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "18"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "224A"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "SUMANG LANE"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "821224"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrPrpgResident4.ts b/src/myinfo/fake/profiles/mrPrpgResident4.ts new file mode 100644 index 00000000..af16fe7b --- /dev/null +++ b/src/myinfo/fake/profiles/mrPrpgResident4.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8484191I"; +const name = ProfileArchetype.MR_PRPG_RESIDENT_4; + +export const mrPrpgResident4: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1984-02-29", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "350"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "03"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "623A"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "PUNGGOL CENTRAL"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "821623"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrPrpgResident5.ts b/src/myinfo/fake/profiles/mrPrpgResident5.ts new file mode 100644 index 00000000..2bf26ea2 --- /dev/null +++ b/src/myinfo/fake/profiles/mrPrpgResident5.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "T0881871H"; +const name = ProfileArchetype.MR_PRPG_RESIDENT_5; + +export const mrPrpgResident5: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "2008-01-01", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "19"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "101"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "PASIR RIS STREET 12"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "510101"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/mrPrpgResident6.ts b/src/myinfo/fake/profiles/mrPrpgResident6.ts new file mode 100644 index 00000000..1ccad708 --- /dev/null +++ b/src/myinfo/fake/profiles/mrPrpgResident6.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S4169135B"; +const name = ProfileArchetype.MR_PRPG_RESIDENT_6; + +export const mrPrpgResident6: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.MALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.MALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1941-02-28", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "276"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "14"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "663A"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "PUNGGOL DRIVE"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "821663"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msCckResident2.ts b/src/myinfo/fake/profiles/msCckResident2.ts new file mode 100644 index 00000000..87482982 --- /dev/null +++ b/src/myinfo/fake/profiles/msCckResident2.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8379286H"; +const name = ProfileArchetype.MS_CCK_RESIDENT_2; + +export const msCckResident2: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1983-03-04", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "372"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "11"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "388"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "BUKIT BATOK WEST AVENUE 5"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "650388"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msCckResident5.ts b/src/myinfo/fake/profiles/msCckResident5.ts new file mode 100644 index 00000000..149cf5d9 --- /dev/null +++ b/src/myinfo/fake/profiles/msCckResident5.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "T0742993I"; +const name = ProfileArchetype.MS_CCK_RESIDENT_5; + +export const msCckResident5: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "2007-12-31", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "1041"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "08"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "438B"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "BUKIT BATOK WEST AVENUE 8"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "652438"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msHbpResident1.ts b/src/myinfo/fake/profiles/msHbpResident1.ts new file mode 100644 index 00000000..504a323d --- /dev/null +++ b/src/myinfo/fake/profiles/msHbpResident1.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S6743158H"; +const name = ProfileArchetype.MS_HBP_RESIDENT_1; + +export const msHbpResident1: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1967-11-12", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "16"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "181"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "JELEBU ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "670181"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msHbpResident3.ts b/src/myinfo/fake/profiles/msHbpResident3.ts new file mode 100644 index 00000000..6a592eeb --- /dev/null +++ b/src/myinfo/fake/profiles/msHbpResident3.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S4050256D"; +const name = ProfileArchetype.MS_HBP_RESIDENT_3; + +export const msHbpResident3: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1940-06-27", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "123"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "04"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "106"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "GANGSA ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "670106"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msHbpResident4.ts b/src/myinfo/fake/profiles/msHbpResident4.ts new file mode 100644 index 00000000..87d82592 --- /dev/null +++ b/src/myinfo/fake/profiles/msHbpResident4.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S6223030D"; +const name = ProfileArchetype.MS_HBP_RESIDENT_4; + +export const msHbpResident4: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1962-11-24", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "123"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "04"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "106"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "GANGSA ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "670106"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msMpResident2.ts b/src/myinfo/fake/profiles/msMpResident2.ts new file mode 100644 index 00000000..be8354cc --- /dev/null +++ b/src/myinfo/fake/profiles/msMpResident2.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S9253681E"; +const name = ProfileArchetype.MS_MP_RESIDENT_2; + +export const msMpResident2: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1992-09-28", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "3007"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "06"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "22"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "EUNOS CRESCENT"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "400022"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msMpResident5.ts b/src/myinfo/fake/profiles/msMpResident5.ts new file mode 100644 index 00000000..5696c69d --- /dev/null +++ b/src/myinfo/fake/profiles/msMpResident5.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "T0704234A"; +const name = ProfileArchetype.MS_MP_RESIDENT_5; + +export const msMpResident5: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "2007-08-30", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "97"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "03"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "262"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "SERANGOON CENTRAL DRIVE"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "550262"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msNsResident1.ts b/src/myinfo/fake/profiles/msNsResident1.ts new file mode 100644 index 00000000..16251c76 --- /dev/null +++ b/src/myinfo/fake/profiles/msNsResident1.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S7952261I"; +const name = ProfileArchetype.MS_NS_RESIDENT_1; + +export const msNsResident1: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1979-10-18", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "174"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "01"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "105"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "YISHUN RING ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "760105"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msNsResident4.ts b/src/myinfo/fake/profiles/msNsResident4.ts new file mode 100644 index 00000000..1ff6d048 --- /dev/null +++ b/src/myinfo/fake/profiles/msNsResident4.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "S8838208J"; +const name = ProfileArchetype.MS_NS_RESIDENT_4; + +export const msNsResident4: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "1988-08-08", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "229"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "10"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "131"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "YISHUN STREET 11"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "760131"; + + return profile; + }, +}; diff --git a/src/myinfo/fake/profiles/msPrpgResident2.ts b/src/myinfo/fake/profiles/msPrpgResident2.ts new file mode 100644 index 00000000..f94e33c6 --- /dev/null +++ b/src/myinfo/fake/profiles/msPrpgResident2.ts @@ -0,0 +1,34 @@ +import * as _ from "lodash"; +import { MyInfoComponents, MyInfoSexCode } from "../../domain"; +import { FakeProfile, ProfileArchetype } from "./fake-profile"; +import { BaseProfile } from "./sponsored-children/BaseProfile"; + +const id = "T0300210H"; +const name = ProfileArchetype.MS_PRPG_RESIDENT_2; + +export const msPrpgResident2: FakeProfile = { + id, + name, + generate: (profileName) => { + profileName = _.isEmpty(profileName) ? name : profileName; + const profile: MyInfoComponents.Schemas.Person = BaseProfile.generate(profileName); + + profile.sex.code = MyInfoSexCode.FEMALE; + profile.sex.desc = MyInfoSexCode.fn.toEnumDesc(MyInfoSexCode.FEMALE); + + profile.dob = { + lastupdated: "2024-01-24", + source: "1", + classification: "C", + value: "2003-09-01", + }; + + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).unit.value = "238"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).floor.value = "13"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).block.value = "602"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).street.value = "ELIAS ROAD"; + (profile.regadd as MyInfoComponents.Schemas.DataitemAddressSg).postal.value = "510602"; + + return profile; + }, +};