Back to Repositories

Validating Core Constants and Utility Functions in Insomnia

This test suite validates core constants and utility functions in the Insomnia API client, focusing on URL validation, activity states, content type handling, and mock service configuration. The tests ensure reliable functionality of fundamental application components.

Test Coverage Overview

The test suite provides comprehensive coverage of essential utility functions and constants.

  • URL regex validation for various HTTP/HTTPS patterns
  • Workspace activity state verification
  • Content type name resolution
  • Mock service URL generation

Implementation Analysis

The tests utilize Jest’s describe/it pattern for clear test organization. Each function is tested independently with multiple assertions to verify both valid and invalid cases. TypeScript type checking is leveraged to ensure type safety, particularly in activity validation tests.

Technical Details

Testing Framework: Jest/Vitest

  • TypeScript for type-safe testing
  • Regular expression validation
  • Mock object testing for server configurations
  • Explicit type checking with @ts-expect-error annotations

Best Practices Demonstrated

The test suite exemplifies strong testing practices through clear organization and thorough validation scenarios.

  • Comprehensive edge case testing
  • Explicit type error testing
  • Grouped related test cases
  • Clear test descriptions

kong/insomnia

packages/insomnia/src/common/__tests__/constants.test.ts

            
import { describe, expect, it } from 'vitest';

import { MockServer } from '../../models/mock-server';
import {
  ACTIVITY_DEBUG,
  ACTIVITY_HOME,
  ACTIVITY_SPEC,
  ACTIVITY_UNIT_TEST,
  FLEXIBLE_URL_REGEX,
  getContentTypeName,
  getMockServiceBinURL,
  isValidActivity,
  isWorkspaceActivity,
} from '../constants';

describe('URL Regex', () => {
  it('matches valid URLs', () => {
    expect('https://google.com').toMatch(FLEXIBLE_URL_REGEX);
    expect('http://google.com').toMatch(FLEXIBLE_URL_REGEX);
    expect('https://google.com/').toMatch(FLEXIBLE_URL_REGEX);
    expect('http://google.com/').toMatch(FLEXIBLE_URL_REGEX);
    expect('https://google').toMatch(FLEXIBLE_URL_REGEX);
    expect('https://dash-domain.com').toMatch(FLEXIBLE_URL_REGEX);
    expect('http://localhost:8000').toMatch(FLEXIBLE_URL_REGEX);
    expect('http://localhost:8000/foo/b@@r?hi=there#hello').toMatch(FLEXIBLE_URL_REGEX);
    expect('http://localhost:8000/foo?Signature=j4w98udA7~NbL6W4~UwAuj').toMatch(FLEXIBLE_URL_REGEX);
  });

  it('does not match "stop" characters', () => {
    expect('string').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('//relative-url.com').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('//relative').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('//relative').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('google.com').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('smtp://mailserver.com').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('"https://google.com"').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('(https://google.com)').not.toMatch(FLEXIBLE_URL_REGEX);
    expect('[https://google.com]').not.toMatch(FLEXIBLE_URL_REGEX);
  });
});

describe('isWorkspaceActivity', () => {
  it('should return true', () => {
    expect(isWorkspaceActivity(ACTIVITY_SPEC)).toBe(true);
    expect(isWorkspaceActivity(ACTIVITY_DEBUG)).toBe(true);
    expect(isWorkspaceActivity(ACTIVITY_UNIT_TEST)).toBe(true);
  });

  it('should return false', () => {
    expect(isWorkspaceActivity(ACTIVITY_HOME)).toBe(false);
  });
});

describe('isValidActivity', () => {
  it('should return true', () => {
    expect(isValidActivity(ACTIVITY_SPEC)).toBe(true);
    expect(isValidActivity(ACTIVITY_DEBUG)).toBe(true);
    expect(isValidActivity(ACTIVITY_UNIT_TEST)).toBe(true);
    expect(isValidActivity(ACTIVITY_HOME)).toBe(true);
  });

  it('should return false', () => {
    expect(isValidActivity('something else')).toBe(false);
    // @ts-expect-error intentionally invalid
    expect(isValidActivity(null)).toBe(false);
    // @ts-expect-error intentionally invalid
    expect(isValidActivity(undefined)).toBe(false);
  });
});

describe('getContentTypeName', () => {
  it('should return empty content type name', () => {
    expect(getContentTypeName()).toBe('');
  });
  it('should return content type name', () => {
    expect(getContentTypeName('application/json')).toBe('JSON');
    expect(getContentTypeName('application/json; charset=utf-8')).toBe('JSON');
    expect(getContentTypeName('text/plain')).toBe('Plain');
    expect(getContentTypeName('application/xml')).toBe('XML');
    expect(getContentTypeName('application/yaml')).toBe('YAML');
    expect(getContentTypeName('application/edn')).toBe('EDN');
    expect(getContentTypeName('application/x-www-form-urlencoded')).toBe('Form');
    expect(getContentTypeName('multipart/form-data')).toBe('Multipart');
    expect(getContentTypeName('application/graphql')).toBe('GraphQL');
    expect(getContentTypeName('application/octet-stream')).toBe('File');
  });
  it('should return unknown content type as other content type name name', () => {
    expect(getContentTypeName('unknown')).toBe('Other');
  });
});

describe('getMockSeviceBinUrl', () => {
  it('should return correct mock url', () => {
    expect(getMockServiceBinURL({
      useInsomniaCloud: true,
      _id: 'mock_617eac05d9a94e38a1187f9b4400039b',
      url: '',
    } as MockServer, '/my-route')).toBe(
      'https://mock-617eac05d9a94e38a1187f9b4400039b.mock.insomnia.rest/my-route'
    );
    expect(getMockServiceBinURL({
      useInsomniaCloud: false,
      _id: 'mock_617eac05d9a94e38a1187f9b4400039b',
      url: 'http://localhost:8080',
    } as MockServer, '/my-route')).toBe(
      'http://localhost:8080/bin/mock_617eac05d9a94e38a1187f9b4400039b/my-route'
    );
  });
});