Skip to content

jenkinsci/js-test

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jenkins JS Test

This package provides some test utilities.

Install Package:

npm install --save-dev @jenkins-cd/js-test

Also see js-modules and js-builder.

onPage

This utility allows you to test some content using jsdom (a lightweight "headless" browser).

Here's an example from the Twitter Bootstrap Framework lib.

var jsTest = require("@jenkins-cd/js-test");

var JENKINS_PAGE = '<html><head resURL="/jenkins"></head><body><div id="divOnPage">Bootstrap is everywhere</div></body></html>';

describe("bootstrap3.js", function () {

    it("- test", function (done) {
        jsTest.onPage(function() {
            var bootstrap3 = require("../js/bootstrap3");
            var $bootstrap = bootstrap3.getBootstrap();

            expect($bootstrap('#divOnPage').text()).toBe('Bootstrap is everywhere');
            
            done();
        }, JENKINS_PAGE);
    });
});

Note the call to done();. This is a Jasmine "thing". It marks the end of an async test flow.

requireSrcModule

This utility makes it a bit easier to load the modules under test.

Without using requireSrcModule, tests would need to load source modules in an ugly/brittle path (like in the above Bootstrap example) e.g.

var mathUtil = require('../../../src/js/utils/mathUtil');

Using requireSrcModule, the above code would be:

var jsTest = require("@jenkins-cd/js-test");

var mathUtil = jsTest.requireSrcModule('utils/mathUtil');

NOTE: This is integrated with js-builder. It will resolve the module being required based on src/test builder configuration.

Examples

See the examples in js-samples, especially step-07-jsdom-tests and step-08-zombie-tests.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.2%
  • HTML 0.8%