feat(provider): publish full unit identity product
This commit is contained in:
@@ -23,6 +23,7 @@ import { geliosProviderPackageV7 } from "../providers/gelios/v7/index.mjs";
|
||||
import { geliosProviderPackageV8 } from "../providers/gelios/v8/index.mjs";
|
||||
import { geliosProviderPackageV9 } from "../providers/gelios/v9/index.mjs";
|
||||
import { geliosProviderPackageV10 } from "../providers/gelios/v10/index.mjs";
|
||||
import { geliosProviderPackageV11 } from "../providers/gelios/v11/index.mjs";
|
||||
import { normalizeDataProductDefinition } from "../../../services/external-data-plane/src/data-product-policy.mjs";
|
||||
|
||||
const expectedFields = [
|
||||
@@ -51,10 +52,13 @@ assert.deepEqual(validateProviderPackage(geliosProviderPackageV7), { ok: true, e
|
||||
assert.deepEqual(validateProviderPackage(geliosProviderPackageV8), { ok: true, errors: [] });
|
||||
assert.deepEqual(validateProviderPackage(geliosProviderPackageV9), { ok: true, errors: [] });
|
||||
assert.deepEqual(validateProviderPackage(geliosProviderPackageV10), { ok: true, errors: [] });
|
||||
assert.deepEqual(validateProviderPackage(geliosProviderPackageV11), { ok: true, errors: [] });
|
||||
assert.equal(geliosProviderPackageV9.id, "gelios.provider.v9");
|
||||
assert.equal(geliosProviderPackageV9.version, "9.0.0");
|
||||
assert.equal(geliosProviderPackageV10.id, "gelios.provider.v10");
|
||||
assert.equal(geliosProviderPackageV10.version, "10.0.0");
|
||||
assert.equal(geliosProviderPackageV11.id, "gelios.provider.v11");
|
||||
assert.equal(geliosProviderPackageV11.version, "11.0.0");
|
||||
assert.equal(geliosProviderPackageV8.id, "gelios.provider.v8");
|
||||
|
||||
const profileProduct = geliosProviderPackageV8.dataProducts.find((product) => product.id === "fleet.units.profile.current.v1");
|
||||
@@ -97,6 +101,34 @@ assert.equal(contactsMapping.fact.attributes.device_phone_primary.guardPath, "ph
|
||||
assert.equal(contactsMapping.fact.attributes.device_phone_secondary.guardPath, "phone2IsVisible");
|
||||
assert.equal(contactsMapping.fact.attributes.provider_creator_login.paths[0], "creator.login");
|
||||
|
||||
const identityProduct = geliosProviderPackageV11.dataProducts.find(
|
||||
(product) => product.id === "fleet.units.identity.current.v1",
|
||||
);
|
||||
const registeredIdentityProduct = JSON.parse(await readFile(new URL(
|
||||
"../../../services/external-data-plane/definitions/fleet.units.identity.current.v1.json",
|
||||
import.meta.url,
|
||||
), "utf8"));
|
||||
assert.deepEqual(identityProduct, registeredIdentityProduct);
|
||||
assert.equal(identityProduct.fieldContracts.available_user_logins.type, "string_array");
|
||||
assert.equal(identityProduct.fieldContracts.custom_fields.type, "string_array");
|
||||
const identityCapability = geliosProviderPackageV11.capabilities.find(
|
||||
(capability) => capability.id === "gelios.units.identity.read",
|
||||
);
|
||||
assert.deepEqual(identityCapability.request.query, {
|
||||
inclextra: "true",
|
||||
inclcstmflds: "true",
|
||||
incldrvrs: "true",
|
||||
inclusersav: "true",
|
||||
});
|
||||
const identityMapping = geliosProviderPackageV11.mappingContracts.find(
|
||||
(mapping) => mapping.id === "gelios.units.to.fleet.units.identity.current.v1",
|
||||
);
|
||||
assert.equal(identityMapping.fact.attributes.device_imei.guardPath, undefined);
|
||||
assert.equal(identityMapping.fact.attributes.device_phone_primary.guardPath, undefined);
|
||||
assert.equal(identityMapping.fact.attributes.assigned_driver_name.paths[0], "driver.name");
|
||||
assert.equal(identityMapping.derivations.available_user_logins.kind, "bounded_string_list");
|
||||
assert.equal(identityMapping.derivations.custom_fields.kind, "bounded_named_values");
|
||||
|
||||
const incompleteGuard = structuredClone(geliosProviderPackageV10);
|
||||
delete incompleteGuard.mappingContracts.at(-1).fact.attributes.device_imei.guardEquals;
|
||||
assert.equal(
|
||||
|
||||
Reference in New Issue
Block a user