djbob2000

Untitled

Aug 26th, 2025
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { test, expect } from "@test/global-setup";
  2. import {
  3.     workspaceConstants,
  4.     getAllInternalResourceMetas,
  5.     InternalResourceMeta,
  6.     setCurrentWorkspaceId,
  7.     setBasePropertyTypeInfo,
  8.     getResourceMeta,
  9.     metaValidationMessages,
  10. } from "@fernir2/saas-kit/server";
  11. import { personProps, getObjectValues, PropertyMeta } from "@fernir2/saas-kit";
  12. import { testNames } from "@test/test-data/constants/test-names";
  13. import { getPersonPropertyMetas } from "@test/test-data/meta/person-property-metas";
  14.  
  15. test.beforeAll("Set workspaceId userId internal meta config", async () => {
  16.     setCurrentWorkspaceId(workspaceConstants.defaultWorkspaceId);
  17. });
  18.  
  19. test(`${setBasePropertyTypeInfo.name} - when property not found - then throw exception`, async () => {
  20.     // Arrange
  21.     const resourceConfigs: InternalResourceMeta[] = Array.from(Object.values(getAllInternalResourceMetas()));
  22.  
  23.     // Act, Assert
  24.     for (const resource of resourceConfigs) {
  25.         const propertyMetas = (await getResourceMeta(resource.name))?.properties;
  26.  
  27.         const property = getObjectValues<PropertyMeta>(propertyMetas).find(
  28.             (propertyMeta) => propertyMeta.name === personProps.phoneBrandId,
  29.         );
  30.  
  31.         if (property) {
  32.             property.name = testNames.fakeId;
  33.  
  34.             const expected = metaValidationMessages.propertyNotFound.replace("{0}", property.name);
  35.  
  36.             const resourceMeta = await getResourceMeta(resource.name);
  37.  
  38.             expect(() => setBasePropertyTypeInfo(property, resourceMeta)).toThrow(expected);
  39.         }
  40.     }
  41. });
  42.  
  43. test(`${getPersonPropertyMetas.name} - when workspaceId property - then isViewVisible is true`, () => {
  44.     // Arrange
  45.     const propertyMetas = getPersonPropertyMetas();
  46.     const workspaceIdMeta = propertyMetas[personProps.workspaceId];
  47.  
  48.     // Act, Assert
  49.     expect(workspaceIdMeta.isViewVisible).toBe(true);
  50. });
  51.  
  52. test(`${getPersonPropertyMetas.name} - when friendCount property - then isDynamic is true`, () => {
  53.     // Arrange
  54.     const propertyMetas = getPersonPropertyMetas();
  55.     const friendCountMeta = propertyMetas[personProps.friendCount];
  56.  
  57.     // Act, Assert
  58.     expect(friendCountMeta.isDynamic).toBe(true);
  59. });
  60.  
  61. test(`${getPersonPropertyMetas.name} - when fullName property - then isDynamic is true`, () => {
  62.     // Arrange
  63.     const propertyMetas = getPersonPropertyMetas();
  64.     const fullNameMeta = propertyMetas[personProps.fullName];
  65.  
  66.     // Act, Assert
  67.     expect(fullNameMeta.isDynamic).toBe(true);
  68. });
  69.  
  70. test(`${getPersonPropertyMetas.name} - when dynamic properties - then required is not true`, () => {
  71.     // Arrange
  72.     const propertyMetas = getPersonPropertyMetas();
  73.  
  74.     // Act
  75.     const dynamicProps = Object.values(propertyMetas).filter(meta => meta.isDynamic);
  76.  
  77.     // Assert
  78.     for (const prop of dynamicProps) {
  79.         expect(prop.required).not.toBe(true);
  80.     }
  81. });
  82.  
  83. test(`${getPersonPropertyMetas.name} - when regular property - then isViewVisible is undefined`, () => {
  84.     // Arrange
  85.     const propertyMetas = getPersonPropertyMetas();
  86.     const nameMeta = propertyMetas[personProps.name];
  87.  
  88.     // Act, Assert
  89.     expect(nameMeta.isViewVisible).toBeUndefined();
  90. });
  91.  
  92. test(`${getPersonPropertyMetas.name} - when regular property - then fileUploadType is undefined`, () => {
  93.     // Arrange
  94.     const propertyMetas = getPersonPropertyMetas();
  95.     const nameMeta = propertyMetas[personProps.name];
  96.  
  97.     // Act, Assert
  98.     expect(nameMeta.fileUploadType).toBeUndefined();
  99. });
  100.  
  101. test(`${getPersonPropertyMetas.name} - when regular property - then isBlobImage is undefined`, () => {
  102.     // Arrange
  103.     const propertyMetas = getPersonPropertyMetas();
  104.     const nameMeta = propertyMetas[personProps.name];
  105.  
  106.     // Act, Assert
  107.     expect(nameMeta.isBlobImage).toBeUndefined();
  108. });
  109.  
  110. test(`${getPersonPropertyMetas.name} - when regular property - then isDynamic is undefined`, () => {
  111.     // Arrange
  112.     const propertyMetas = getPersonPropertyMetas();
  113.     const nameMeta = propertyMetas[personProps.name];
  114.  
  115.     // Act, Assert
  116.     expect(nameMeta.isDynamic).toBeUndefined();
  117. });
  118.  
  119. test(`${getPersonPropertyMetas.name} - when dynamic properties - then isDynamic is true`, () => {
  120.     // Arrange
  121.     const propertyMetas = getPersonPropertyMetas();
  122.     const expectedDynamicProperties = [personProps.friendCount, personProps.fullName];
  123.  
  124.     // Act, Assert
  125.     for (const propName of expectedDynamicProperties) {
  126.         const propertyMeta = propertyMetas[propName];
  127.         expect(propertyMeta.isDynamic).toBe(true);
  128.     }
  129. });
  130.  
  131. test(`${getPersonPropertyMetas.name} - when image properties - then isBlobImage is true`, () => {
  132.     // Arrange
  133.     const propertyMetas = getPersonPropertyMetas();
  134.     const imageUrlMeta = propertyMetas[personProps.imageUrl];
  135.     const profileImageMeta = propertyMetas["profileImage"];
  136.  
  137.     // Act, Assert
  138.     expect(imageUrlMeta.isBlobImage).toBe(true);
  139.     expect(profileImageMeta.isBlobImage).toBe(true);
  140. });
  141.  
  142. test(`${getPersonPropertyMetas.name} - when file upload properties - then fileUploadType is set correctly`, () => {
  143.     // Arrange
  144.     const propertyMetas = getPersonPropertyMetas();
  145.     const profileImageMeta = propertyMetas["profileImage"];
  146.     const attachmentsMeta = propertyMetas["attachments"];
  147.  
  148.     // Act, Assert
  149.     expect(profileImageMeta.fileUploadType).toBe(1); // fileUploadType.single
  150.     expect(attachmentsMeta.fileUploadType).toBe(0); // fileUploadType.multiple
  151. });
Advertisement
Add Comment
Please, Sign In to add comment