UNPKG

judoscale-node-core

Version:

Core dependencies for NodeJS adapters for the JudoScale autoscaling add-on for Heroku

78 lines (61 loc) 2.71 kB
/* global test, expect, describe, jest */ const Config = require('../src/config') describe('Config', () => { beforeEach(() => { delete process.env.JUDOSCALE_URL delete process.env.JUDOSCALE_LOG_LEVEL delete process.env.DYNO delete process.env.RENDER_INSTANCE_ID delete process.env.RENDER_SERVICE_ID delete process.env.ECS_CONTAINER_METADATA_URI delete process.env.FLY_MACHINE_ID delete process.env.RAILWAY_REPLICA_ID }) test('has logger property', () => { expect(new Config()).toHaveProperty('logger') }) test('has log_level property that can be overridden via JUDOSCALE_LOG_LEVEL', () => { expect(new Config()).toHaveProperty('log_level', 'info') process.env.JUDOSCALE_LOG_LEVEL = 'warn' expect(new Config()).toHaveProperty('log_level', 'warn') }) test('has api_base_url property', () => { process.env.JUDOSCALE_URL = 'HO HO HO' expect(new Config()).toHaveProperty('api_base_url', 'HO HO HO') }) test('has api_base_url and container properties for render', () => { process.env.RENDER_INSTANCE_ID = 'renderServiceId-renderInstanceId' process.env.RENDER_SERVICE_ID = 'renderServiceId' expect(new Config()).toHaveProperty('api_base_url', 'https://adapter.judoscale.com/api/renderServiceId') expect(new Config()).toHaveProperty('container', 'renderInstanceId') }) test('JUDOSCALE_URL overrides RENDER_INSTANCE_ID for render', () => { process.env.JUDOSCALE_URL = 'HO HO HO' process.env.RENDER_INSTANCE_ID = 'renderServiceId-renderInstanceId' process.env.RENDER_SERVICE_ID = 'renderServiceId' expect(new Config()).toHaveProperty('api_base_url', 'HO HO HO') expect(new Config()).toHaveProperty('container', 'renderInstanceId') }) test('has container property for ECS', () => { process.env.ECS_CONTAINER_METADATA_URI = 'ecs-service/container-id' expect(new Config()).toHaveProperty('container', 'container-id') }) test('has container property for Heroku', () => { process.env.DYNO = 'web.123' expect(new Config()).toHaveProperty('container', 'web.123') }) test('has container property for Fly', () => { process.env.FLY_MACHINE_ID = 'random-machine-id' expect(new Config()).toHaveProperty('container', 'random-machine-id') }) test('has container property for Railway', () => { process.env.RAILWAY_REPLICA_ID = 'random-replica-uuid' expect(new Config()).toHaveProperty('container', 'random-replica-uuid') }) test('has version property', () => { expect(new Config().version).toMatch(/\d+\.\d+\.\d+/) }) test('has report_interval_seconds property', () => { expect(new Config()).toHaveProperty('report_interval_seconds', 10) }) })