or run

npx @tessl/cli init
Log in

Version

Files

tile.json

task.mdevals/scenario-6/

Browser Engine Detector

Build a utility that analyzes User-Agent strings to extract and report rendering engine information.

Capabilities

Extract engine information from User-Agent strings

  • Given a Chrome 120 User-Agent string "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", return an object with name "Blink" and version "120.0.0.0" @test
  • Given a Firefox 121 User-Agent string "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0", return an object with name "Gecko" and version "121.0" @test
  • Given a Safari 17 User-Agent string "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15", return an object with name "WebKit" and version "605.1.15" @test

Extract engine name with formatting options

  • Given a Chrome User-Agent string, return engine name "Blink" when toLowerCase is false @test
  • Given a Chrome User-Agent string, return engine name "blink" when toLowerCase is true @test

Implementation

@generates

API

/**
 * Extracts rendering engine information from a User-Agent string.
 *
 * @param {string} userAgent - The User-Agent string to parse
 * @returns {Object} An object containing engine name and version
 */
function getEngineInfo(userAgent) {
  // IMPLEMENTATION HERE
}

/**
 * Extracts the rendering engine name from a User-Agent string.
 *
 * @param {string} userAgent - The User-Agent string to parse
 * @param {boolean} [toLowerCase=false] - Whether to return the name in lowercase
 * @returns {string} The rendering engine name
 */
function getEngineName(userAgent, toLowerCase = false) {
  // IMPLEMENTATION HERE
}

module.exports = {
  getEngineInfo,
  getEngineName,
};

Dependencies { .dependencies }

bowser { .dependency }

Provides browser detection and parsing capabilities.

@satisfied-by