All files / src/context/yaml/handlers tenant.ts

94.11% Statements 16/17
75% Branches 3/4
100% Functions 2/2
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 511x 1x               41x         4x 4x         4x   4x   4x   4x                 7x   7x   7x   7x     1x         1x  
import { clearTenantFlags } from '../../../utils';
import { sessionDurationsToMinutes } from '../../../sessionDurationsToMinutes';
import { YAMLHandler } from '.';
import YAMLContext from '..';
import { Asset, ParsedAsset } from '../../../types';
 
type ParsedTenant = ParsedAsset<'tenant', Asset>;
 
async function parse(context: YAMLContext): Promise<ParsedTenant> {
  if (!context.assets.tenant) return { tenant: null };
 
  /* eslint-disable camelcase */
  const {
    session_lifetime,
    idle_session_lifetime,
    ...tenant
  }: {
    session_lifetime?: number;
    idle_session_lifetime?: number;
    [key: string]: any;
  } = context.assets.tenant;
 
  clearTenantFlags(tenant);
 
  const sessionDurations = sessionDurationsToMinutes({ session_lifetime, idle_session_lifetime });
 
  return {
    tenant: {
      ...tenant,
      ...sessionDurations,
    },
  };
}
 
async function dump(context: YAMLContext): Promise<ParsedTenant> {
  const tenant = context.assets.tenant;
 
  Iif (!tenant) return { tenant: null };
 
  clearTenantFlags(tenant);
 
  return { tenant };
}
 
const tenantHandler: YAMLHandler<ParsedTenant> = {
  parse,
  dump,
};
 
export default tenantHandler;