@signatu/policy
Version:
signatu policy components
95 lines • 5.65 kB
JavaScript
;
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