babel-plugin-ember-test-metadata

    3.0.1 • Public • Published

    babel-plugin-ember-test-metadata

    A Babel plugin for Ember apps that adds a test's file path to test metadata available through @ember/test-helpers.

    CI Build License Package Version Code Style: prettier

    Why use this plugin

    A test file's path can enable downstream consumers of test results to process, and potentially associate a specific test failure to a file path. This can assist with the analysis of test infrastructure, specifically where identifying ownership over a test file is useful or required.

    This Babel plugin transforms a test so that its file path is added to @ember/test-helpers test metadata, where other utilities can subsequently read that data.

    Installation

    npm install babel-plugin-ember-test-metadata --save-dev
    
    # or
    
    yarn add babel-plugin-ember-test-metadata -D

    Usage

    This plugin needs to be configured in your ember-cli-build.js file by adding it your babel's plugins array:

    'use strict';
    
    const EmberApp = require('ember-cli/lib/broccoli/ember-app');
    
    module.exports = function (defaults) {
      let app = new EmberApp(defaults, {
        babel: {
          plugins: [
            [
              require.resolve('babel-plugin-ember-test-metadata'),
              {
                enabled: !!process.env.BABEL_TEST_METADATA,
                packageName: defaults.project.pkg.name,
              },
            ],
          ],
        },
      });
    
      // additional configuration
    
      return app.toTree();
    };

    If you're using Embroider instead of Ember CLI, you need to tell the plugin how to process the file paths:

    'use strict';
    
    const EmberApp = require('ember-cli/lib/broccoli/ember-app');
    
    module.exports = function (defaults) {
      let app = new EmberApp(defaults, {
        babel: {
          plugins: [
            [
              require.resolve('babel-plugin-ember-test-metadata'),
              {
                enabled: !!process.env.BABEL_TEST_METADATA,
                packageName: defaults.project.pkg.name,
                isUsingEmbroider: true,
              },
            ],
          ],
        },
      });
    
      // additional configuration
    
      return app.toTree();
    };

    Set the environment variable BABEL_TEST_METADATA=true to enable the plugin to perform its transformations.

    You can additionally pass in a projectRoot relative path to the options to accommodate more complex project structures like workspaces.

    'use strict';
    
    const EmberApp = require('ember-cli/lib/broccoli/ember-app');
    
    module.exports = function (defaults) {
      let app = new EmberApp(defaults, {
        babel: {
          plugins: [
            [
              require.resolve('babel-plugin-ember-test-metadata'),
              {
                enabled: !!process.env.BABEL_TEST_METADATA,
                packageName: defaults.project.pkg.name,
                packageRoot: '../..',
              },
            ],
          ],
        },
      });
    
      // additional configuration
    
      return app.toTree();
    };

    Keywords

    none

    Install

    npm i babel-plugin-ember-test-metadata

    DownloadsWeekly Downloads

    65

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    13 kB

    Total Files

    5

    Last publish

    Collaborators

    • scalvert
    • glnster