UNPKG

@signatu/policy

Version:
95 lines 5.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var common_lib_1 = require("@signatu/common-lib"); var __1 = require("../.."); var policyDataProcessing_1 = require("../../lib/elements/policyDataProcessing"); describe('PolicyDataProcessing', function () { var english = new common_lib_1.Language('en'); var norwegian = new common_lib_1.Language('no'); var norway = new common_lib_1.Location('no'); var romanian = new common_lib_1.Language('ro'); describe('action verbs', function () { var verbs = __1.PolicyDataProcessing.supportedActions; verbs.forEach(function (verbConst) { describe("works for verb " + verbConst, function () { var dp; var dpExtra; var verbName = policyDataProcessing_1.TRANSLATIONS['en'].actions[verbConst]; beforeEach(function () { dp = new __1.PolicyDataProcessing(verbConst, 'e-mail', 'rip you off', new common_lib_1.Location('Norway')); dp.ref = "https://foo.bar"; dpExtra = new __1.PolicyDataProcessing(verbConst, 'e-mail', 'rip you off', new common_lib_1.Location('Norway'), true, // sensitive false, // consentTarget common_lib_1.LegalBasis.CONSENT); }); test('works with toJSON()', function () { var json = dp.toJSON(); expect(json.masterText).toEqual("We " + verbName + " e-mail in Norway to rip you off."); expect(json.action).toEqual(verbConst); expect(json.data).toEqual(dp.data); expect(json.location).toEqual('NO'); expect(json.purpose).toEqual(dp.purpose); expect(json.type).toEqual('PolicyDataProcessing'); expect(json.ref).toEqual(dp.ref); }); test('works with stringify()', function () { var jsonString = JSON.stringify(dp); expect(jsonString).toContain("\"location\":\"" + norway.alpha2 + "\""); expect(jsonString).toContain("\"action\":\"" + verbConst + "\""); expect(jsonString).toContain("\"purpose\":\"" + dp.purpose + "\""); expect(jsonString).toContain("\"data\":\"" + dp.data + "\""); expect(jsonString).toContain("\"type\":\"PolicyDataProcessing\""); }); test('deserialization', function () { var s = JSON.stringify(dp); var json = JSON.parse(s); var parsed = __1.PolicyDataProcessing.fromJSON(json); expect(dp).toEqual(parsed); }); test('serializes correctly (issue #1585)', function () { dp.location = undefined; var json = dp.toJSON(); expect(json.masterText).toEqual("We " + verbName + " e-mail to rip you off."); }); test('deserializes correctly (issue #1585)', function () { dp.location = undefined; var s = JSON.stringify(dp); var json = JSON.parse(s); var parsed = __1.PolicyDataProcessing.fromJSON(json); expect(dp).toEqual(parsed); }); test('serializes with sensitive, legalBasis and consentTarget', function () { var json = dpExtra.toJSON(); expect(json.sensitive).toEqual(true); expect(json.consentTarget).toEqual(false); expect(json.legalBasis).toEqual(common_lib_1.LegalBasis.CONSENT); }); test('deserializes with sensitive, legalBasis and consentTarget', function () { var s = JSON.stringify(dpExtra); var json = JSON.parse(s); var parsed = __1.PolicyDataProcessing.fromJSON(json); expect(dpExtra).toEqual(parsed); }); test('works with location in Norwegian', function () { var localVerb = policyDataProcessing_1.TRANSLATIONS[norwegian.isoLanguage].actions[verbConst]; expect(dp.createText(norwegian)).toEqual("Vi " + localVerb + " e-mail i Norge for \u00E5 " + dp.purpose + "."); }); test('works without location in Norwegian', function () { var localVerb = policyDataProcessing_1.TRANSLATIONS[norwegian.isoLanguage].actions[verbConst]; delete dp.location; expect(dp.createText(norwegian)).toEqual("Vi " + localVerb + " e-mail for \u00E5 " + dp.purpose + "."); }); test('works with location in Romanian', function () { var localVerb = policyDataProcessing_1.TRANSLATIONS[romanian.isoLanguage].actions[verbConst]; expect(dp.createText(romanian)).toEqual("Noi " + localVerb + " e-mail \u00EEn Norvegia pentru " + dp.purpose + "."); }); test('works without location in Romanian', function () { var localVerb = policyDataProcessing_1.TRANSLATIONS[romanian.isoLanguage].actions[verbConst]; delete dp.location; expect(dp.createText(romanian)).toEqual("Noi " + localVerb + " e-mail pentru " + dp.purpose + "."); }); }); }); }); }); //# sourceMappingURL=policyDataProcessing.test.js.map