From c9c38fe027822e1863de7c3cd6b7fbf403ac36eb Mon Sep 17 00:00:00 2001 From: Chad Huff Date: Tue, 21 Jan 2025 16:04:56 -0700 Subject: [PATCH] usnat backwards compatibility --- .../src/encoder/segment/UsNatCoreSegment.ts | 9 +++ modules/cmpapi/test/GppModel.test.ts | 55 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/modules/cmpapi/src/encoder/segment/UsNatCoreSegment.ts b/modules/cmpapi/src/encoder/segment/UsNatCoreSegment.ts index 8ed8d3f..9723510 100644 --- a/modules/cmpapi/src/encoder/segment/UsNatCoreSegment.ts +++ b/modules/cmpapi/src/encoder/segment/UsNatCoreSegment.ts @@ -134,6 +134,15 @@ export class UsNatCoreSegment extends AbstractLazilyEncodableSegment { expect(gppModel.getFieldValue("tcfeuv2", "VendorConsents")).to.eql([1, 173, 722]); }); + it("should decode DBABTA~1YYN", (): void => { + let gppString = "DBABTA~1YYN"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UspV1.NAME, UspV1Field.VERSION); + }); + + it("should decode DBABLA~BVQqAAAAAgA.QA", (): void => { + let gppString = "DBABLA~BVQqAAAAAgA.QA"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); + }); + + it("should decode DBABLA~BAAAAAAAAQA.QA", (): void => { + let gppString = "DBABLA~BAAAAAAAAQA.QA"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)).to.eql([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)).to.eql([0, 0, 0]); + }); + + it("should decode DBABLA~BAAAAAAAAABA.QA", (): void => { + let gppString = "DBABLA~BAAAAAAAAABA.QA"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)).to.eql([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)).to.eql([0, 0, 0]); + }); + + it("should decode DBABLA~BAAAAAABEQA.QA", (): void => { + let gppString = "DBABLA~BAAAAAABEQA.QA"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)).to.eql([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + ]); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)).to.eql([0, 1, 0]); + }); + + it("should decode DBABLA~BAAAAAAAAQRA.QA", (): void => { + let gppString = "DBABLA~BAAAAAAAAQRA.QA"; + let gppModel = new GppModel(gppString); + gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)).to.eql([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + ]); + expect(gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)).to.eql([0, 0, 1]); + }); + it("should decode and encode consistently", (): void => { let fromObjectModel = new GppModel(); fromObjectModel.setFieldValue("tcfeuv2", "PurposeConsents", [