or run

npx @tessl/cli init
Log in

Version

Files

tile.json

task.mdevals/scenario-1/

Browser Type Validator

A utility that validates and normalizes browser, engine, OS, and platform type names using standard mappings.

Capabilities

Validate browser names

  • When given "chrome", returns true and the normalized name "Chrome" @test
  • When given "firefox", returns true and the normalized name "Firefox" @test
  • When given "invalidbrowser", returns false and null @test

Validate engine names

  • When given "webkit", returns true and the normalized name "WebKit" @test
  • When given "blink", returns true and the normalized name "Blink" @test
  • When given "fakeengine", returns false and null @test

Validate OS names

  • When given "macos", returns true and the normalized name "macOS" @test
  • When given "windows", returns true and the normalized name "Windows" @test
  • When given "fakeos", returns false and null @test

Validate platform types

  • When given "desktop", returns true and the normalized name "desktop" @test
  • When given "mobile", returns true and the normalized name "mobile" @test
  • When given "fakeplatform", returns false and null @test

Implementation

@generates

API

/**
 * Validates a browser name against known browser types.
 *
 * @param {string} browserName - The browser name to validate (case-insensitive)
 * @returns {{valid: boolean, normalized: string|null}} Object with validation result and normalized name
 */
function validateBrowser(browserName) {
  // IMPLEMENTATION HERE
}

/**
 * Validates an engine name against known rendering engines.
 *
 * @param {string} engineName - The engine name to validate (case-insensitive)
 * @returns {{valid: boolean, normalized: string|null}} Object with validation result and normalized name
 */
function validateEngine(engineName) {
  // IMPLEMENTATION HERE
}

/**
 * Validates an OS name against known operating systems.
 *
 * @param {string} osName - The OS name to validate (case-insensitive)
 * @returns {{valid: boolean, normalized: string|null}} Object with validation result and normalized name
 */
function validateOS(osName) {
  // IMPLEMENTATION HERE
}

/**
 * Validates a platform type against known platform types.
 *
 * @param {string} platformType - The platform type to validate (case-insensitive)
 * @returns {{valid: boolean, normalized: string|null}} Object with validation result and normalized name
 */
function validatePlatform(platformType) {
  // IMPLEMENTATION HERE
}

module.exports = {
  validateBrowser,
  validateEngine,
  validateOS,
  validatePlatform
};

Dependencies { .dependencies }

bowser { .dependency }

Provides browser, OS, engine, and platform detection with standard naming constants.

@satisfied-by