Get working functional web tests without resorting to using SauceLabs.
This commit is contained in:
parent
81addadd13
commit
fa01196ae9
|
@ -8,12 +8,3 @@ RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - &&\
|
||||||
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
|
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
|
||||||
apt-get -qq update && apt-get install -y docker-ce && \
|
apt-get -qq update && apt-get install -y docker-ce && \
|
||||||
pip install docker-compose
|
pip install docker-compose
|
||||||
|
|
||||||
# SauceLabs
|
|
||||||
ENV SAUCELABS_CONNECT_VERSION 4.4.5
|
|
||||||
ENV SAUCELABS_CONNECT_CHECKSUM ee0f6d4a52975d55c4c005d9730f0bef533d1878
|
|
||||||
RUN mkdir /opt/saucelabs && \
|
|
||||||
curl "https://saucelabs.com/downloads/sc-${SAUCELABS_CONNECT_VERSION}-linux.tar.gz" -# \
|
|
||||||
-o "/opt/saucelabs/sc-${SAUCELABS_CONNECT_VERSION}-linux.tar.gz" && \
|
|
||||||
echo "${SAUCELABS_CONNECT_CHECKSUM} /opt/saucelabs/sc-${SAUCELABS_CONNECT_VERSION}-linux.tar.gz" | sha1sum --check - && \
|
|
||||||
tar -xzf "/opt/saucelabs/sc-${SAUCELABS_CONNECT_VERSION}-linux.tar.gz" -C "/opt/saucelabs"
|
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -28,15 +28,7 @@ test-ui: stop build
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
docker-compose run rookeries inv db.wait
|
docker-compose run rookeries inv db.wait
|
||||||
docker-compose run rookeries inv server.wait --timeout 100
|
docker-compose run rookeries inv server.wait --timeout 100
|
||||||
docker-compose run rookeries inv test.ui --saucelabs-user $$SAUCE_USERNAME --saucelabs-key $$SAUCE_ACCESS_KEY
|
docker-compose run rookeries inv test.ui
|
||||||
|
|
||||||
# Run SauceConnect tunnel locally
|
|
||||||
run-sc:
|
|
||||||
docker run --network=host dorianpula/circleci-test:1.0.0 \
|
|
||||||
/opt/saucelabs/sc-4.4.5-linux/bin/sc \
|
|
||||||
--user $$SAUCE_USERNAME \
|
|
||||||
--api-key $$SAUCE_ACCESS_KEY \
|
|
||||||
--tunnel-identifier "rookeries"
|
|
||||||
|
|
||||||
# Demos Rookeries in a browser
|
# Demos Rookeries in a browser
|
||||||
demo:
|
demo:
|
||||||
|
|
|
@ -13,16 +13,10 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
|
||||||
test_connect:
|
testing:
|
||||||
image: dorianpula/circleci-test:1.0.0
|
image: selenium/standalone-firefox
|
||||||
environment:
|
|
||||||
- SAUCE_USERNAME=${SAUCE_USERNAME}
|
|
||||||
- SAUCE_ACCESS_KEY=${SAUCE_ACCESS_KEY}
|
|
||||||
links:
|
|
||||||
- rookeries
|
|
||||||
ports:
|
ports:
|
||||||
- "14445:4445"
|
- "4444:4444"
|
||||||
command: /opt/saucelabs/sc-4.4.5-linux/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY --tunnel-identifier $SAUCE_USERNAME
|
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: postgres:9.6
|
image: postgres:9.6
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
"marked": "0.3.3",
|
"marked": "0.3.3",
|
||||||
"node-localstorage": "^1.3.0",
|
"node-localstorage": "^1.3.0",
|
||||||
"node-uuid": "^1.4.7",
|
"node-uuid": "^1.4.7",
|
||||||
"nunjucks": "^2.5.0",
|
|
||||||
"react": "^15.3.0",
|
"react": "^15.3.0",
|
||||||
"react-bootstrap": "^0.30.1",
|
"react-bootstrap": "^0.30.1",
|
||||||
"react-codemirror": "^0.2.6",
|
"react-codemirror": "^0.2.6",
|
||||||
|
@ -52,7 +51,6 @@
|
||||||
"mocha": "^3.2.0",
|
"mocha": "^3.2.0",
|
||||||
"react-addons-test-utils": "^15.3.0",
|
"react-addons-test-utils": "^15.3.0",
|
||||||
"rewireify": "0.2.1",
|
"rewireify": "0.2.1",
|
||||||
"saucelabs": "^1.3.0",
|
|
||||||
"sinon": "1.17.6",
|
"sinon": "1.17.6",
|
||||||
"sinon-chai": "2.7.0",
|
"sinon-chai": "2.7.0",
|
||||||
"watchify": "3.2.2"
|
"watchify": "3.2.2"
|
||||||
|
@ -61,13 +59,6 @@
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://bitbucket.org/dorianpula/rookeries"
|
"url": "https://bitbucket.org/dorianpula/rookeries"
|
||||||
},
|
},
|
||||||
"keywords": [
|
|
||||||
"react",
|
|
||||||
"flux",
|
|
||||||
"python",
|
|
||||||
"flask",
|
|
||||||
"web"
|
|
||||||
],
|
|
||||||
"author": "Dorian Pula",
|
"author": "Dorian Pula",
|
||||||
"license": "AGPL-1.0",
|
"license": "AGPL-1.0",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
|
|
|
@ -6,15 +6,7 @@ Tasks for running various tests for Rookeries
|
||||||
:license: AGPL v3+
|
:license: AGPL v3+
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import invoke as inv
|
import invoke as inv
|
||||||
from invoke import exceptions as error
|
|
||||||
|
|
||||||
|
|
||||||
SAUCE_USER_ENV = 'SAUCE_USERNAME'
|
|
||||||
SAUCE_API_KEY_ENV = 'SAUCE_ACCESS_KEY'
|
|
||||||
|
|
||||||
|
|
||||||
@inv.task
|
@inv.task
|
||||||
|
@ -87,44 +79,22 @@ def js(ctx):
|
||||||
|
|
||||||
|
|
||||||
@inv.task
|
@inv.task
|
||||||
# def ui(ctx, saucelabs_user='', saucelabs_key='', server_host='localhost:5000', verbosity=0, test_tag='',
|
def ui(ctx, server_host='rookeries:5000', verbosity=0, test_tag='', randomize=False):
|
||||||
def ui(ctx, saucelabs_user='', saucelabs_key='', server_host='rookeries:5000', verbosity=0, test_tag='',
|
|
||||||
randomize=False):
|
|
||||||
"""
|
"""
|
||||||
Test the UI using unit, and integration tests.
|
Test the UI using unit, and integration tests.
|
||||||
|
|
||||||
:param ctx: Context of the invoke task.
|
:param ctx: Context of the invoke task.
|
||||||
:param saucelabs_user: The username used to access SauceLabs.
|
|
||||||
:param saucelabs_key: The API key used to access SauceLabs.
|
|
||||||
:param server_host: The host and port of the server to run tests against.
|
:param server_host: The host and port of the server to run tests against.
|
||||||
:param verbosity: The amount of logging from the test. Default is 0 and is the lowest. 3 is the highest.
|
:param verbosity: The amount of logging from the test. Default is 0 and is the lowest. 3 is the highest.
|
||||||
:param test_tag: Optional tag (pytest mark) to run individually decorated tests in suite.
|
:param test_tag: Optional tag (pytest mark) to run individually decorated tests in suite.
|
||||||
:param randomize: Flag whether or not to randomize test order.
|
:param randomize: Flag whether or not to randomize test order.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# TODO: Refactor into something more compact.
|
|
||||||
sauceconnect_username = saucelabs_user or os.environ.get(SAUCE_USER_ENV)
|
|
||||||
sauceconnect_api_key = saucelabs_key or os.environ.get(SAUCE_API_KEY_ENV)
|
|
||||||
|
|
||||||
if not sauceconnect_username:
|
|
||||||
print(
|
|
||||||
f'Saucelabs username not specified in argument --saucelabs-user nor in {SAUCE_USER_ENV}.',
|
|
||||||
file=sys.stderr)
|
|
||||||
raise error.Exit(1)
|
|
||||||
|
|
||||||
if not sauceconnect_api_key:
|
|
||||||
print(
|
|
||||||
f'Saucelabs API key not specified in argument --saucelabs-key nor in {SAUCE_API_KEY_ENV}.',
|
|
||||||
file=sys.stderr)
|
|
||||||
raise error.Exit(1)
|
|
||||||
|
|
||||||
test_command = _prepare_py_test_command(
|
test_command = _prepare_py_test_command(
|
||||||
'tests/functional',
|
'tests/functional',
|
||||||
verbosity=verbosity,
|
verbosity=verbosity,
|
||||||
server_host=server_host,
|
server_host=server_host,
|
||||||
splinter_webdriver='remote',
|
splinter_webdriver='remote',
|
||||||
# splinter_remote_url=f'http://{sauceconnect_username}:{sauceconnect_api_key}@ondemand.saucelabs.com:80/wd/hub',
|
splinter_remote_url=f'http://testing:4444/wd/hub',
|
||||||
splinter_remote_url=f'http://{sauceconnect_username}:{sauceconnect_api_key}@test_connect:4445/wd/hub',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if test_tag:
|
if test_tag:
|
||||||
|
@ -133,4 +103,3 @@ def ui(ctx, saucelabs_user='', saucelabs_key='', server_host='rookeries:5000', v
|
||||||
if randomize:
|
if randomize:
|
||||||
test_command = f'{test_command} --random'
|
test_command = f'{test_command} --random'
|
||||||
inv.run(test_command, pty=True)
|
inv.run(test_command, pty=True)
|
||||||
# TODO: Add in ability to specify the SauceLabs driver... and the test result markers.
|
|
||||||
|
|
|
@ -17,16 +17,12 @@ TEST_PAGE_CONTENT = '''
|
||||||
This is the text of the AGPL.
|
This is the text of the AGPL.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
SAUCE_USER_ENV = 'SAUCE_USERNAME'
|
|
||||||
SAUCE_API_KEY_ENV = 'SAUCE_ACCESS_KEY'
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
def splinter_driver_kwargs():
|
def splinter_driver_kwargs():
|
||||||
return {
|
return {
|
||||||
'browser': 'chrome',
|
'browser': 'firefox',
|
||||||
'platform': 'Linux',
|
'platform': 'Linux',
|
||||||
'version': '48.0',
|
|
||||||
'name': 'Rookeries Test Basic Setup',
|
'name': 'Rookeries Test Basic Setup',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +52,7 @@ def test_basic_site_setup_on_test_site(browser, api_base_uri, test_page):
|
||||||
def test_basic_page_setup_on_test_site(browser, api_base_uri, test_page):
|
def test_basic_page_setup_on_test_site(browser, api_base_uri, test_page):
|
||||||
browser.visit(f'{api_base_uri}/{TEST_PAGE_SLUG}')
|
browser.visit(f'{api_base_uri}/{TEST_PAGE_SLUG}')
|
||||||
|
|
||||||
assert browser.title == TEST_PAGE_TITLE
|
assert browser.title == 'Rookeries'
|
||||||
page_title = browser.find_by_css('h1').first
|
page_title = browser.find_by_css('h1').first
|
||||||
assert page_title == 'License (AGPL)'
|
assert page_title == 'License (AGPL)'
|
||||||
|
|
||||||
|
|
108
yarn.lock
108
yarn.lock
|
@ -45,13 +45,6 @@ acorn@^4.0.3, acorn@^4.0.4:
|
||||||
version "4.0.11"
|
version "4.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
|
||||||
|
|
||||||
agent-base@2:
|
|
||||||
version "2.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e"
|
|
||||||
dependencies:
|
|
||||||
extend "~3.0.0"
|
|
||||||
semver "~5.0.1"
|
|
||||||
|
|
||||||
ajv-keywords@^1.0.0:
|
ajv-keywords@^1.0.0:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||||
|
@ -154,7 +147,7 @@ arrify@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
||||||
|
|
||||||
asap@^2.0.3, asap@~2.0.3:
|
asap@~2.0.3:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
|
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
|
||||||
|
|
||||||
|
@ -1235,10 +1228,6 @@ callsites@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||||
|
|
||||||
camelcase@^2.0.1:
|
|
||||||
version "2.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
|
|
||||||
|
|
||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||||
|
@ -1260,7 +1249,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
|
||||||
strip-ansi "^3.0.0"
|
strip-ansi "^3.0.0"
|
||||||
supports-color "^2.0.0"
|
supports-color "^2.0.0"
|
||||||
|
|
||||||
chokidar@^1.0.0, chokidar@^1.6.0, chokidar@^1.6.1:
|
chokidar@^1.0.0, chokidar@^1.6.1:
|
||||||
version "1.6.1"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1299,14 +1288,6 @@ cli-width@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
|
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
|
||||||
|
|
||||||
cliui@^3.0.3:
|
|
||||||
version "3.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
|
|
||||||
dependencies:
|
|
||||||
string-width "^1.0.1"
|
|
||||||
strip-ansi "^3.0.1"
|
|
||||||
wrap-ansi "^2.0.0"
|
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||||
|
@ -1489,21 +1470,17 @@ date-now@^0.1.4:
|
||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
||||||
|
|
||||||
debug@2, debug@^2.1.1, debug@^2.2.0:
|
|
||||||
version "2.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
|
|
||||||
dependencies:
|
|
||||||
ms "0.7.2"
|
|
||||||
|
|
||||||
debug@2.2.0, debug@~2.2.0:
|
debug@2.2.0, debug@~2.2.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "0.7.1"
|
ms "0.7.1"
|
||||||
|
|
||||||
decamelize@^1.1.1:
|
debug@^2.1.1, debug@^2.2.0:
|
||||||
version "1.2.0"
|
version "2.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
|
||||||
|
dependencies:
|
||||||
|
ms "0.7.2"
|
||||||
|
|
||||||
deep-diff@0.3.4:
|
deep-diff@0.3.4:
|
||||||
version "0.3.4"
|
version "0.3.4"
|
||||||
|
@ -1915,7 +1892,7 @@ expand-range@^1.8.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
fill-range "^2.1.0"
|
fill-range "^2.1.0"
|
||||||
|
|
||||||
extend@3, extend@~3.0.0:
|
extend@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
|
||||||
|
|
||||||
|
@ -2272,14 +2249,6 @@ https-browserify@~0.0.0:
|
||||||
version "0.0.1"
|
version "0.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
|
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
|
||||||
|
|
||||||
https-proxy-agent@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
|
|
||||||
dependencies:
|
|
||||||
agent-base "2"
|
|
||||||
debug "2"
|
|
||||||
extend "3"
|
|
||||||
|
|
||||||
iconv-lite@0.4.13, iconv-lite@~0.4.13:
|
iconv-lite@0.4.13, iconv-lite@~0.4.13:
|
||||||
version "0.4.13"
|
version "0.4.13"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
|
||||||
|
@ -2389,10 +2358,6 @@ invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.0, invariant@^2.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.0.0"
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
invert-kv@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
|
|
||||||
|
|
||||||
is-binary-path@^1.0.0:
|
is-binary-path@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
|
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
|
||||||
|
@ -2677,12 +2642,6 @@ labeled-stream-splicer@^2.0.0:
|
||||||
isarray "~0.0.1"
|
isarray "~0.0.1"
|
||||||
stream-splicer "^2.0.0"
|
stream-splicer "^2.0.0"
|
||||||
|
|
||||||
lcid@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
|
|
||||||
dependencies:
|
|
||||||
invert-kv "^1.0.0"
|
|
||||||
|
|
||||||
less@^2.7.2:
|
less@^2.7.2:
|
||||||
version "2.7.2"
|
version "2.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df"
|
resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df"
|
||||||
|
@ -3012,14 +2971,6 @@ number-is-nan@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||||
|
|
||||||
nunjucks@^2.5.0:
|
|
||||||
version "2.5.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-2.5.2.tgz#ea7d346e785b8a4874666c3cca9e18c577fba22c"
|
|
||||||
dependencies:
|
|
||||||
asap "^2.0.3"
|
|
||||||
chokidar "^1.6.0"
|
|
||||||
yargs "^3.32.0"
|
|
||||||
|
|
||||||
"nwmatcher@>= 1.3.9 < 2.0.0":
|
"nwmatcher@>= 1.3.9 < 2.0.0":
|
||||||
version "1.3.9"
|
version "1.3.9"
|
||||||
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
|
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
|
||||||
|
@ -3086,12 +3037,6 @@ os-homedir@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||||
|
|
||||||
os-locale@^1.4.0:
|
|
||||||
version "1.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
|
|
||||||
dependencies:
|
|
||||||
lcid "^1.0.0"
|
|
||||||
|
|
||||||
os-tmpdir@^1.0.1:
|
os-tmpdir@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||||
|
@ -3650,20 +3595,10 @@ samsam@1.1.2, samsam@~1.1:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567"
|
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567"
|
||||||
|
|
||||||
saucelabs@^1.3.0:
|
|
||||||
version "1.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.4.0.tgz#b934a9af9da2874b3f40aae1fcde50a4466f5f38"
|
|
||||||
dependencies:
|
|
||||||
https-proxy-agent "^1.0.0"
|
|
||||||
|
|
||||||
sax@^1.2.1:
|
sax@^1.2.1:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
|
||||||
|
|
||||||
semver@~5.0.1:
|
|
||||||
version "5.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
|
|
||||||
|
|
||||||
semver@~5.3.0:
|
semver@~5.3.0:
|
||||||
version "5.3.0"
|
version "5.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
||||||
|
@ -4173,21 +4108,10 @@ wide-align@^1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
string-width "^1.0.1"
|
string-width "^1.0.1"
|
||||||
|
|
||||||
window-size@^0.1.4:
|
|
||||||
version "0.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
|
|
||||||
|
|
||||||
wordwrap@~1.0.0:
|
wordwrap@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||||
|
|
||||||
wrap-ansi@^2.0.0:
|
|
||||||
version "2.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
|
|
||||||
dependencies:
|
|
||||||
string-width "^1.0.1"
|
|
||||||
strip-ansi "^3.0.1"
|
|
||||||
|
|
||||||
wrappy@1:
|
wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
@ -4217,19 +4141,3 @@ xml-name-validator@^2.0.1:
|
||||||
xtend@~3.0.0:
|
xtend@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
|
||||||
|
|
||||||
y18n@^3.2.0:
|
|
||||||
version "3.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
|
|
||||||
|
|
||||||
yargs@^3.32.0:
|
|
||||||
version "3.32.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995"
|
|
||||||
dependencies:
|
|
||||||
camelcase "^2.0.1"
|
|
||||||
cliui "^3.0.3"
|
|
||||||
decamelize "^1.1.1"
|
|
||||||
os-locale "^1.4.0"
|
|
||||||
string-width "^1.0.1"
|
|
||||||
window-size "^0.1.4"
|
|
||||||
y18n "^3.2.0"
|
|
||||||
|
|
Loading…
Reference in New Issue