mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Migrate JavaScript tests from Karma to the Jasmine framework (#12754)
This commit is contained in:
parent
96b511798d
commit
e3238260f6
2
.github/workflows/nodejs.yml
vendored
2
.github/workflows/nodejs.yml
vendored
@ -6,7 +6,6 @@ on:
|
|||||||
- ".github/workflows/nodejs.yml"
|
- ".github/workflows/nodejs.yml"
|
||||||
- "sphinx/themes/**.js"
|
- "sphinx/themes/**.js"
|
||||||
- "tests/js/**"
|
- "tests/js/**"
|
||||||
- "karma.conf.js"
|
|
||||||
- "package.json"
|
- "package.json"
|
||||||
- "package-lock.json"
|
- "package-lock.json"
|
||||||
pull_request:
|
pull_request:
|
||||||
@ -14,7 +13,6 @@ on:
|
|||||||
- ".github/workflows/nodejs.yml"
|
- ".github/workflows/nodejs.yml"
|
||||||
- "sphinx/themes/**.js"
|
- "sphinx/themes/**.js"
|
||||||
- "tests/js/**"
|
- "tests/js/**"
|
||||||
- "karma.conf.js"
|
|
||||||
- "package.json"
|
- "package.json"
|
||||||
- "package-lock.json"
|
- "package-lock.json"
|
||||||
|
|
||||||
|
@ -28,3 +28,7 @@ Bugs fixed
|
|||||||
|
|
||||||
Testing
|
Testing
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
* #12141: Migrate from the deprecated ``karma`` JavaScript test framework to
|
||||||
|
the actively-maintained ``jasmine`` framework. Test coverage is unaffected.
|
||||||
|
Patch by James Addison.
|
||||||
|
@ -174,10 +174,10 @@ Style and type checks can be run as follows:
|
|||||||
Unit tests
|
Unit tests
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
Sphinx is tested using pytest_ for Python code and Karma_ for JavaScript.
|
Sphinx is tested using pytest_ for Python code and Jasmine_ for JavaScript.
|
||||||
|
|
||||||
.. _pytest: https://docs.pytest.org/en/latest/
|
.. _pytest: https://docs.pytest.org/en/latest/
|
||||||
.. _Karma: https://karma-runner.github.io
|
.. _Jasmine: https://jasmine.github.io/
|
||||||
|
|
||||||
To run Python unit tests, we recommend using :program:`tox`, which provides a number
|
To run Python unit tests, we recommend using :program:`tox`, which provides a number
|
||||||
of targets and allows testing against multiple different Python environments:
|
of targets and allows testing against multiple different Python environments:
|
||||||
@ -216,13 +216,10 @@ To run JavaScript tests, use :program:`npm`:
|
|||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
:program:`karma` requires a Firefox binary to use as a test browser.
|
:program:`jasmine` requires a Firefox binary to use as a test browser.
|
||||||
|
|
||||||
For Unix-based systems, you can specify the path to the Firefox binary using:
|
On Unix systems, you can check the presence and location of the ``firefox``
|
||||||
|
binary at the command-line by running ``command -v firefox``.
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
FIREFOX_BIN="/Applications/Firefox.app/Contents/MacOS/firefox" npm test
|
|
||||||
|
|
||||||
New unit tests should be included in the :file:`tests/` directory where necessary:
|
New unit tests should be included in the :file:`tests/` directory where necessary:
|
||||||
|
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
// Karma configuration
|
|
||||||
// Generated on Sat Jul 21 2018 22:01:48 GMT+0200 (CEST)
|
|
||||||
|
|
||||||
module.exports = function(config) {
|
|
||||||
config.set({
|
|
||||||
|
|
||||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
||||||
basePath: '',
|
|
||||||
|
|
||||||
|
|
||||||
// frameworks to use
|
|
||||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
||||||
frameworks: ['jasmine'],
|
|
||||||
|
|
||||||
|
|
||||||
// list of files / patterns to load in the browser
|
|
||||||
files: [
|
|
||||||
{ pattern: 'tests/js/fixtures/**/*.js', included: false, served: true },
|
|
||||||
'tests/js/documentation_options.js',
|
|
||||||
'tests/js/language_data.js',
|
|
||||||
'sphinx/themes/basic/static/doctools.js',
|
|
||||||
'sphinx/themes/basic/static/searchtools.js',
|
|
||||||
'sphinx/themes/basic/static/sphinx_highlight.js',
|
|
||||||
'tests/js/*.js'
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
// list of files / patterns to exclude
|
|
||||||
exclude: [
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
// preprocess matching files before serving them to the browser
|
|
||||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
||||||
preprocessors: {
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// test results reporter to use
|
|
||||||
// possible values: 'dots', 'progress'
|
|
||||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
||||||
reporters: ['progress'],
|
|
||||||
|
|
||||||
|
|
||||||
// web server port
|
|
||||||
port: 9876,
|
|
||||||
|
|
||||||
|
|
||||||
// enable / disable colors in the output (reporters and logs)
|
|
||||||
colors: true,
|
|
||||||
|
|
||||||
|
|
||||||
// level of logging
|
|
||||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
|
|
||||||
|
|
||||||
// enable / disable watching file and executing tests whenever any file changes
|
|
||||||
autoWatch: true,
|
|
||||||
|
|
||||||
|
|
||||||
// start these browsers
|
|
||||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
||||||
browsers: ["Firefox"],
|
|
||||||
|
|
||||||
|
|
||||||
// Continuous Integration mode
|
|
||||||
// if true, Karma captures browsers, runs the tests and exits
|
|
||||||
singleRun: false,
|
|
||||||
|
|
||||||
// Concurrency level
|
|
||||||
// how many browser should be started simultaneous
|
|
||||||
concurrency: Infinity
|
|
||||||
})
|
|
||||||
}
|
|
2939
package-lock.json
generated
2939
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "sphinx",
|
"name": "sphinx",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "./node_modules/.bin/karma start --browsers Firefox --single-run"
|
"test": "npx jasmine-browser-runner runSpecs --config=tests/js/jasmine-browser.mjs"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -11,9 +11,7 @@
|
|||||||
"url": "https://github.com/sphinx-doc/sphinx/issues"
|
"url": "https://github.com/sphinx-doc/sphinx/issues"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jasmine-core": "^3.4.0",
|
"jasmine-browser-runner": "^2.5.0",
|
||||||
"karma": "^6.3.16",
|
"jasmine-core": "^5.2.0"
|
||||||
"karma-firefox-launcher": "^2.0.0",
|
|
||||||
"karma-jasmine": "^4.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
29
tests/js/jasmine-browser.mjs
Normal file
29
tests/js/jasmine-browser.mjs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
export default {
|
||||||
|
srcDir: ".",
|
||||||
|
srcFiles: [
|
||||||
|
'sphinx/themes/basic/static/doctools.js',
|
||||||
|
'sphinx/themes/basic/static/searchtools.js',
|
||||||
|
'sphinx/themes/basic/static/sphinx_highlight.js',
|
||||||
|
'tests/js/fixtures/**/*.js',
|
||||||
|
'tests/js/documentation_options.js',
|
||||||
|
'tests/js/language_data.js',
|
||||||
|
],
|
||||||
|
specDir: "tests/js",
|
||||||
|
specFiles: [
|
||||||
|
'searchtools.js',
|
||||||
|
'sphinx_highlight.js'
|
||||||
|
],
|
||||||
|
helpers: [],
|
||||||
|
env: {
|
||||||
|
stopSpecOnExpectationFailure: false,
|
||||||
|
stopOnSpecFailure: false,
|
||||||
|
random: true
|
||||||
|
},
|
||||||
|
|
||||||
|
listenAddress: "127.0.0.1",
|
||||||
|
hostname: "127.0.0.1",
|
||||||
|
|
||||||
|
browser: {
|
||||||
|
name: "firefox"
|
||||||
|
}
|
||||||
|
};
|
@ -2,7 +2,7 @@ describe('Basic html theme search', function() {
|
|||||||
|
|
||||||
function loadFixture(name) {
|
function loadFixture(name) {
|
||||||
req = new XMLHttpRequest();
|
req = new XMLHttpRequest();
|
||||||
req.open("GET", `base/tests/js/fixtures/${name}`, false);
|
req.open("GET", `__src__/tests/js/fixtures/${name}`, false);
|
||||||
req.send(null);
|
req.send(null);
|
||||||
return req.responseText;
|
return req.responseText;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user