Replace SauceLabs with BrowserStack (#171)

This commit is contained in:
jelhan 2019-03-14 21:30:48 +01:00 committed by GitHub
parent 25b9bf0aba
commit b8c02ca579
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 581 additions and 557 deletions

4
.gitignore vendored
View file

@ -25,3 +25,7 @@
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
# BrowserStack
/*.pid
/*.log

View file

@ -8,9 +8,7 @@ matrix:
- env: TEST="API"
php: 5.6
- env: TEST="EMBER"
- env: TEST="SAUCE"
allow_failures:
- env: TEST="SAUCE"
- env: TEST="BROWSER"
dist: trusty
sudo: false
@ -21,36 +19,38 @@ addons:
cache:
yarn: true
env:
global:
- "BROWSERSTACK_USERNAME=jeldrikhanschke1"
- "BROWSERSTACK_ACCESS_KEY=xaM9Uxurv2GyxFLKQXgj"
before_install:
- if [ "$TEST" == "API" ]; then export TEST_API=true; else export TEST_API=false; fi
- if [ "$TEST" == "EMBER" ]; then export TEST_EMBER=true; else export TEST_EMBER=false; fi
- if [ "$TEST" == "SAUCE" ]; then export TEST_SAUCE=true; else export TEST_SAUCE=false; fi
# provide yarn and bower if ember build is tested
- if $TEST_EMBER || $TEST_SAUCE; then curl -o- -L https://yarnpkg.com/install.sh | bash; fi
- if $TEST_EMBER || $TEST_SAUCE; then export PATH=$HOME/.yarn/bin:$PATH; fi
# provide yarn if ember build is tested
- if [ $TEST = "EMBER" ] || [ $TEST = "BROWSER" ]; then curl -o- -L https://yarnpkg.com/install.sh | bash; fi
- if [ $TEST = "EMBER" ] || [ $TEST = "BROWSER" ]; then export PATH=$HOME/.yarn/bin:$PATH; fi
install:
# install dependencies for client
- if $TEST_EMBER || $TEST_SAUCE; then yarn install --no-interactive; fi
- if [ $TEST = "EMBER" ] || [ $TEST = "BROWSER" ]; then yarn install --no-interactive; fi
# install dependencies for api
- if $TEST_API; then cd api/ && composer install && cd ..; fi
- if [ $TEST = "API" ]; then cd api/ && composer install && cd ..; fi
before_script:
# http://php.net/manual/de/ini.core.php#ini.always-populate-raw-post-data
- if $TEST_API; then echo 'always_populate_raw_post_data = -1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi
# create a sauce tunnel
- if $TEST_SAUCE; then node_modules/ember-cli/bin/ember sauce:connect; fi
- if [ $TEST = "API" ]; then echo 'always_populate_raw_post_data = -1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi
# create a browser stack tunnel for cross-browser testing
- if [ $TEST = "BROWSER" ]; then node_modules/ember-cli/bin/ember browserstack:connect; fi
script:
# run frontend and integration tests
- if $TEST_EMBER; then yarn run lint:hbs; fi
- if $TEST_EMBER; then yarn run lint:js; fi
- if $TEST_EMBER; then yarn test; fi
- if [ $TEST = "EMBER" ]; then yarn run lint:hbs; fi
- if [ $TEST = "EMBER" ]; then yarn run lint:js; fi
- if [ $TEST = "EMBER" ]; then yarn test; fi
# test against different browsers using sauce lab
- if $TEST_SAUCE; then node_modules/ember-cli/bin/ember test --launch='SL_chrome,SL_firefox,SL_edge,SL_ie,SL_safari' --test-port 8080; fi
- if [ $TEST = "BROWSER" ]; then yarn test --config-file testem.browserstack.js; fi
# run api tests with composer
- if $TEST_API; then cd api/ && ./vendor/bin/codecept run && cd ..; fi
- if [ $TEST = "API" ]; then cd api/ && ./vendor/bin/codecept run && cd ..; fi
after_script:
# destroy the sauce tunnel
- if $TEST_SAUCE; then node_modules/ember-cli/bin/ember sauce:disconnect; fi
- if [ $TEST = "BROWSER" ]; then node_modules/ember-cli/bin/ember browserstack:disconnect; fi

View file

@ -4,8 +4,6 @@
[![Code Climate](https://codeclimate.com/github/jelhan/croodle/badges/gpa.svg)](https://codeclimate.com/github/jelhan/croodle)
[![devDependency Status](https://david-dm.org/jelhan/croodle/dev-status.svg)](https://david-dm.org/jelhan/croodle?type=dev)
[![Sauce Test Status](https://saucelabs.com/browser-matrix/jelhan.svg)](https://saucelabs.com/u/jelhan)
Croodle is a web application to schedule a date or to do a poll on a general topics. Stored content data like title and description, number and labels of options and available answers and names of users and there selections is encrypted/decrypted in the browser using 256 bits AES.
This is an alpha version. Changes could brake backward compatibility. Also it is not well tested and some features are missing. It is not ment for productive use yet.
@ -96,6 +94,14 @@ directory to `/api` and execute `./vendor/bin/codecept run`. You have
to install composer development requirements before (`composer install`
without `--no-dev` option).
## Credits
Continous Integration powered by<br>
<a href="https://travis-ci.com/"><img src="https://travis-ci.com/images/logos/TravisCI-Full-Color.png" height="50"></a>
Cross-browser testing provided by<br>
<a href="https://www.browserstack.com"><img src="docs/Browserstack-logo.svg" height="50"></a>
## License
croodle is [MIT Licensed](https://github.com/jelhan/croodle/blob/master/LICENSE).

View file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 490.1 105.6" style="enable-background:new 0 0 490.1 105.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F4B960;}
.st1{fill:#E66F32;}
.st2{fill:#E43C41;}
.st3{fill:#BDD041;}
.st4{fill:#6DB54C;}
.st5{fill:#AEDAE6;}
.st6{fill:#56B8DE;}
.st7{fill:#00B1D5;}
.st8{fill:url(#SVGID_1_);}
.st9{fill:#221F1F;}
.st10{fill:#FFFFFF;}
.st11{fill:#000111;}
</style>
<title>Browserstack-logo-white</title>
<circle class="st0" cx="52.8" cy="52.8" r="52.8"/>
<circle class="st1" cx="47.5" cy="47.5" r="47.5"/>
<circle class="st2" cx="53.8" cy="41.1" r="41.1"/>
<circle class="st3" cx="57.1" cy="44.4" r="37.8"/>
<circle class="st4" cx="54.3" cy="47.2" r="35.1"/>
<circle class="st5" cx="48.8" cy="41.7" r="29.5"/>
<circle class="st6" cx="53.6" cy="36.8" r="24.7"/>
<circle class="st7" cx="56.6" cy="39.9" r="21.7"/>
<radialGradient id="SVGID_1_" cx="53.45" cy="63.02" r="18.57" gradientTransform="matrix(1 0 0 -1 0 106)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#797979"/>
<stop offset="1" style="stop-color:#4C4C4C"/>
</radialGradient>
<circle class="st8" cx="53.5" cy="43" r="18.6"/>
<circle class="st9" cx="53.5" cy="43" r="18.6"/>
<ellipse transform="matrix(0.4094 -0.9123 0.9123 0.4094 2.8913 76.9251)" class="st10" cx="60.9" cy="36.2" rx="5.7" ry="3.7"/>
<path class="st11" d="M122.5,32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h16.6c9.5,0,13.9,4.4,13.9,11c0.2,3.7-1.8,7.2-5.2,8.8v0.1
c3.7,1.5,6.1,5.2,6,9.3c0,8.2-5.6,12.2-15.4,12.2h-16c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1L122.5,32.6L122.5,32.6z M139.6,49.1
c3.9,0,6.4-2.2,6.4-5.4s-2.4-5.5-6.4-5.5h-8.9c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.2c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0
H139.6L139.6,49.1z M130.6,66.9h9.3c4.3,0,6.8-2.3,6.8-5.8s-2.4-5.7-6.7-5.7h-9.3c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.7
C130.3,66.8,130.4,66.9,130.6,66.9C130.6,66.9,130.6,66.9,130.6,66.9L130.6,66.9z"/>
<path class="st11" d="M159.9,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
H159.9L159.9,73.3z"/>
<path class="st11" d="M182.9,65.8c-0.8-2.3-1.1-4.8-1.1-7.2c-0.1-2.5,0.3-4.9,1.1-7.2c1.8-5.1,6.6-8.1,13.1-8.1s11.2,3,13,8.1
c0.8,2.3,1.1,4.8,1.1,7.2c0.1,2.5-0.3,4.9-1.1,7.2c-1.8,5.1-6.6,8.1-13,8.1S184.7,71,182.9,65.8z M201.9,64c0.5-1.7,0.8-3.6,0.7-5.4
c0.1-1.8-0.1-3.7-0.7-5.4c-0.9-2.5-3.3-4-5.9-3.8c-2.6-0.2-5.1,1.4-6,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.4
c0.9,2.5,3.4,4,6,3.8C198.6,68,201,66.5,201.9,64L201.9,64z"/>
<path class="st11" d="M241.9,73.3c-0.4,0-0.7-0.3-0.8-0.6L235,53.9h-0.1l-6.2,18.7c-0.1,0.4-0.4,0.6-0.8,0.6h-5.4
c-0.4,0-0.7-0.3-0.8-0.6l-10-28.1c-0.1-0.2,0-0.5,0.2-0.6c0.1,0,0.2-0.1,0.3,0h6.3c0.4,0,0.8,0.2,0.9,0.6l6.1,19.3h0.1l6-19.3
c0.1-0.4,0.5-0.6,0.9-0.6h4.7c0.4,0,0.7,0.2,0.9,0.6l6.4,19.3h0.1l5.8-19.3c0.1-0.4,0.5-0.7,0.9-0.6h6.3c0.2-0.1,0.5,0.1,0.5,0.3
c0,0.1,0,0.2,0,0.3l-10,28.1c-0.1,0.4-0.4,0.6-0.8,0.6L241.9,73.3L241.9,73.3z"/>
<path class="st11" d="M259.3,69.3c-0.2-0.2-0.3-0.6-0.1-0.8c0,0,0,0,0.1-0.1l3.7-3.6c0.3-0.2,0.7-0.2,0.9,0c2.6,2.1,5.9,3.3,9.3,3.3
c3.9,0,5.9-1.5,5.9-3.5c0-1.8-1.1-2.9-5.2-3.2l-3.4-0.3c-6.4-0.6-9.7-3.6-9.7-8.6c0-5.7,4.4-9.2,12.3-9.2c4.2-0.1,8.4,1.2,11.9,3.6
c0.3,0.2,0.3,0.5,0.2,0.8c0,0,0,0,0,0.1l-3.2,3.6c-0.2,0.3-0.6,0.3-0.9,0.1c-2.5-1.5-5.4-2.4-8.3-2.4c-3.1,0-4.8,1.3-4.8,3
s1.1,2.7,5.2,3.1l3.4,0.3c6.6,0.6,9.8,3.8,9.8,8.6c0,5.8-4.6,9.9-13.3,9.9C268,74,263.2,72.4,259.3,69.3z"/>
<path class="st11" d="M291.2,65.8c-0.8-2.3-1.2-4.7-1.1-7.2c-0.1-2.5,0.3-4.9,1-7.2c1.8-5.1,6.6-8.1,12.9-8.1c6.5,0,11.2,3.1,13,8.1
c0.7,2.1,1,4.1,1,8.8c0,0.3-0.3,0.6-0.6,0.6c0,0-0.1,0-0.1,0h-19.5c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1c0,0.8,0.2,1.5,0.5,2.2
c1,2.9,3.5,4.4,7.1,4.4c2.7,0.1,5.4-0.9,7.4-2.8c0.2-0.3,0.7-0.4,1-0.1c0,0,0,0,0,0l3.9,3.2c0.2,0.1,0.3,0.5,0.2,0.7
c0,0.1-0.1,0.1-0.1,0.1c-2.7,2.9-7.2,5-13,5C297.8,73.9,293,70.9,291.2,65.8z M310.4,52.8c-0.9-2.4-3.2-3.8-6.2-3.8
s-5.4,1.4-6.2,3.8c-0.3,0.8-0.4,1.6-0.4,2.5c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h12.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1
C310.8,54.5,310.6,53.6,310.4,52.8L310.4,52.8z"/>
<path class="st11" d="M323.6,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
H323.6L323.6,73.3z"/>
<path class="st11" d="M346.5,68.5c-0.3-0.2-0.4-0.6-0.2-0.9c0,0,0,0,0,0l4.1-4.4c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0
c3.5,2.7,7.7,4.2,12.1,4.4c5.3,0,8.4-2.5,8.4-6c0-3-2-4.9-8.1-5.7l-2.4-0.3c-8.6-1.1-13.5-4.9-13.5-11.8c0-7.5,5.9-12.4,15.1-12.4
c5.1-0.1,10.1,1.4,14.5,4.2c0.3,0.1,0.4,0.4,0.2,0.7c0,0.1-0.1,0.1-0.1,0.2l-3.1,4.5c-0.2,0.3-0.6,0.4-0.9,0.2
c-3.2-2.1-6.9-3.2-10.7-3.2c-4.5,0-7,2.3-7,5.5c0,2.9,2.2,4.8,8.2,5.6l2.4,0.3c8.6,1.1,13.3,4.9,13.3,12c0,7.3-5.7,12.8-16.8,12.8
C356.3,73.9,350,71.5,346.5,68.5z"/>
<path class="st11" d="M393.3,73.8c-6.4,0-8.8-2.9-8.8-8.6V49.8c0-0.2-0.1-0.3-0.3-0.4c0,0,0,0-0.1,0H382c-0.3,0-0.6-0.2-0.7-0.5
c0,0,0,0,0-0.1v-4.1c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h2.1c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-8c0-0.3,0.3-0.6,0.6-0.6
c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v8c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h4.2c0.3,0,0.6,0.2,0.7,0.5
c0,0,0,0,0,0.1v4.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-4.2c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1V65c0,2.1,0.9,2.7,3,2.7h1.6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v4.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0L393.3,73.8L393.3,73.8z"/>
<path class="st11" d="M421.2,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1v-2.1h0c-1.5,2-4.5,3.4-8.9,3.4c-5.8,0-10.6-2.8-10.6-8.9
c0-6.4,4.9-9.3,12.7-9.3h6.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-1.4c0-3.3-1.7-4.9-7-4.9c-2.6-0.1-5.1,0.6-7.2,2
c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1l-2.4-4c-0.2-0.2-0.1-0.6,0.1-0.8c0,0,0,0,0,0c2.6-1.7,6-2.9,11.2-2.9
c9.6,0,13.2,3,13.2,10.2v19.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0H421.2L421.2,73.3z M420.4,63.4v-2.2c0-0.2-0.1-0.3-0.3-0.4
c0,0,0,0-0.1,0h-5.2c-4.7,0-6.8,1.2-6.8,3.9c0,2.4,1.9,3.6,5.5,3.6C417.9,68.4,420.4,66.8,420.4,63.4L420.4,63.4z"/>
<path class="st11" d="M433.1,65.8c-0.7-2.3-1.1-4.8-1-7.2c-0.1-2.4,0.3-4.9,1-7.2c1.8-5.2,6.7-8.1,13.1-8.1c4.2-0.2,8.2,1.5,11,4.6
c0.2,0.2,0.2,0.6,0,0.8c0,0,0,0-0.1,0.1l-4.1,3.3c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1c-1.5-1.7-3.6-2.6-5.9-2.5
c-2.8,0-5,1.3-5.9,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.5c0.9,2.5,3.1,3.8,5.9,3.8c2.2,0.1,4.4-0.9,5.9-2.6
c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0l4.1,3.3c0.3,0.2,0.3,0.5,0.1,0.8c0,0,0,0-0.1,0.1c-2.9,3-6.9,4.6-11,4.5
C439.8,73.9,435,71.1,433.1,65.8z"/>
<path class="st11" d="M482.8,73.3c-0.4,0-0.8-0.2-1-0.6l-8-12.3l-4.3,4.6v7.7c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-6
c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v23.8
l10.8-11.8c0.3-0.4,0.8-0.6,1.2-0.6h6.7c0.2,0,0.4,0.1,0.4,0.3c0,0.1,0,0.3-0.1,0.3l-10.1,10.7L490,72.7c0.1,0.2,0.1,0.4,0,0.5
c-0.1,0.1-0.2,0.1-0.3,0.1H482.8L482.8,73.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -29,6 +29,7 @@
"ember-cli-app-version": "^3.2.0",
"ember-cli-babel": "^6.16.0",
"ember-cli-browser-navigation-button-test-helper": "^0.1.1",
"ember-cli-browserstack": "^0.0.7",
"ember-cli-chart": "^3.3.1",
"ember-cli-clipboard": "^0.8.0",
"ember-cli-content-security-policy": "^1.0.0",
@ -44,7 +45,6 @@
"ember-cli-page-object": "^1.11.0",
"ember-cli-release": "^0.2.9",
"ember-cli-sass": "^8.0.1",
"ember-cli-sauce": "^1.6.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-template-lint": "^1.0.0-beta.1",
"ember-cli-uglify": "^2.1.0",

128
testem.browserstack.js Normal file
View file

@ -0,0 +1,128 @@
/* eslint-env node */
module.exports = {
'test_page': 'tests/index.html?hidepassed',
'disable_watching': true,
'parallel': 5,
browser_start_timeout: 2000,
browser_disconnect_timeout: 120,
'launch_in_ci': [
'BS_IE_11',
'BS_MS_Edge',
'BS_Safari_Current',
],
'launch_in_dev': [
'Chrome'
],
launchers: {
BS_Chrome_Current: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'Windows',
'--osv',
'10',
'--b',
'chrome',
'--bv',
'latest',
'-t',
'1200',
'--u',
'<url>',
],
protocol: 'browser',
},
BS_Firefox_Current: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'Windows',
'--osv',
'10',
'--b',
'firefox',
'--bv',
'latest',
'-t',
'1200',
'--u',
'<url>',
],
protocol: 'browser',
},
BS_Safari_Current: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'OS X',
'--osv',
'Mojave',
'--b',
'safari',
'--bv',
'latest',
'-t',
'1200',
'--u',
'<url>',
],
protocol: 'browser',
},
BS_Safari_Last: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'OS X',
'--osv',
'High Sierra',
'--b',
'safari',
'--bv',
'latest',
'-t',
'1200',
'--u',
'<url>',
],
protocol: 'browser',
},
BS_MS_Edge: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'Windows',
'--osv',
'10',
'--b',
'edge',
'--bv',
'latest',
'-t',
'1200',
'--u',
'<url>',
],
protocol: 'browser',
},
BS_IE_11: {
exe: 'node_modules/.bin/browserstack-launch',
args: [
'--os',
'Windows',
'--osv',
'10',
'--b',
'ie',
'--bv',
'11.0',
'-t',
'1500',
'--u',
'<url>&legacy=true',
],
protocol: 'browser',
},
}
};

View file

@ -593,8 +593,8 @@ module('Acceptance | create a poll', function(hooks) {
test('create a poll and using back button (find a date)', async function(assert) {
let days = [
'2016-01-02',
'2016-01-13',
moment('2016-01-02'),
moment('2016-01-13'),
];
const dayFormat = moment.localeData().longDateFormat('LLLL')
.replace(
@ -614,13 +614,13 @@ module('Acceptance | create a poll', function(hooks) {
assert.equal(currentRouteName(), 'create.options');
await pageCreateOptions.selectDates(
days.map((day) => new Date(day))
days.map((_) => _.toDate())
);
await pageCreateOptions.next();
assert.equal(currentRouteName(), 'create.options-datetime');
assert.deepEqual(
pageCreateOptionsDatetime.days().labels,
days.map((day) => moment(day).format(dayFormat)),
days.map((_) => _.format(dayFormat)),
'time inputs having days as label'
);
@ -629,7 +629,7 @@ module('Acceptance | create a poll', function(hooks) {
assert.equal(currentRouteName(), 'create.options');
assert.deepEqual(
findAll('.ember-power-calendar-day--selected').map((el) => el.dataset.date),
days,
days.map((_) => _.format('YYYY-MM-DD')),
'days are still present after back button is used'
);
@ -658,8 +658,8 @@ module('Acceptance | create a poll', function(hooks) {
assert.deepEqual(
pagePollParticipation.options().labels,
[
moment(days[0]).format(dayFormat),
moment(days[1]).hour(10).minute(0).format('LLLL')
days[0].format(dayFormat),
days[1].clone().hour(10).minute(0).format('LLLL')
],
'options are correctly labeled'
);

View file

@ -32,16 +32,16 @@ module('Integration | Component | create options dates', function(hooks) {
this.set('options', []);
await render(hbs`{{#bs-form as |form|}}{{create-options-dates options=options form=form}}{{/bs-form}}`);
await calendarSelect('[data-test-form-element-for="days"]', new Date('2015-01-01'));
await calendarSelect('[data-test-form-element-for="days"]', new Date('2015-01-02'));
await calendarSelect('[data-test-form-element-for="days"]', new Date(2015, 0, 1));
await calendarSelect('[data-test-form-element-for="days"]', new Date(2015, 0, 2));
assert.deepEqual(
this.get('options').map((option) => option.title),
['2015-01-01', '2015-01-02'],
'dates are correct'
);
await calendarSelect('[data-test-form-element-for="days"]', new Date('2016-12-31'));
await calendarSelect('[data-test-form-element-for="days"]', new Date('2016-01-01'));
await calendarSelect('[data-test-form-element-for="days"]', new Date(2016, 11, 31));
await calendarSelect('[data-test-form-element-for="days"]', new Date(2016, 0, 1));
assert.deepEqual(
this.get('options').map((option) => option.title),
['2015-01-01', '2015-01-02', '2016-01-01', '2016-12-31'],

View file

@ -99,34 +99,34 @@ module('Unit | Component | create options datetime', function(hooks) {
test('bindings are working on grouped datetimes', function(assert) {
let component = this.owner.factoryFor('component:create-options-datetime').create();
run(() => {
component.set('dates', [
this.store.createFragment('option', {
title: moment('2015-01-01T11:11:00.000Z').toISOString()
})
]);
});
let baseDate = moment('2015-01-01T11:11');
component.set('dates', [
this.store.createFragment('option', {
title: baseDate.toISOString()
})
]);
assert.equal(
component.get('groupedDates.firstObject.items.firstObject.time'),
moment('2015-01-01T11:11:00.000Z').format('HH:mm'),
baseDate.format('HH:mm'),
'time is correct before'
);
run(() => {
component.set(
'groupedDates.firstObject.items.firstObject.time',
'00:00'
);
});
component.set(
'groupedDates.firstObject.items.firstObject.time',
'00:00'
);
assert.equal(
component.get('dates.firstObject.title'),
moment('2015-01-01T00:00').toISOString(),
moment(baseDate).hour(0).minute(0).toISOString(),
'option is updated after time changed on grouped datetimes'
);
run(() => {
component.get('dates').pushObject(
this.store.createFragment('option', { title: moment('2015-01-01T12:12').toISOString() })
);
});
component.get('dates').pushObject(
this.store.createFragment('option', {
title: baseDate.add(1, 'hour').add(1, 'minute').toISOString(),
})
);
assert.equal(
component.get('groupedDates.firstObject.items.length'),
2,
@ -137,11 +137,10 @@ module('Unit | Component | create options datetime', function(hooks) {
'12:12',
'grouped datetimes got updated correctly after option was added (same day)'
);
run(() => {
component.get('dates').pushObject(
this.store.createFragment('option', { title: moment('2015-02-02T01:01').toISOString() })
);
});
component.get('dates').pushObject(
this.store.createFragment('option', { title: moment('2015-02-02T01:01').toISOString() })
);
assert.equal(
component.get('groupedDates.length'),
2,
@ -223,8 +222,8 @@ module('Unit | Component | create options datetime', function(hooks) {
options: [
{ title: '2015-01-01' },
{ title: '2015-01-02' },
{ title: moment('2015-01-03T11:00:00.000Z').toISOString() },
{ title: moment('2015-01-03T15:00:00.000Z').toISOString() }
{ title: moment('2015-01-03T11:00').toISOString() },
{ title: moment('2015-01-03T15:00').toISOString() }
]
});
let component = this.owner.factoryFor('component:create-options-datetime').create({

View file

@ -12,16 +12,14 @@ module('Unit | Controller | create/options datetime', function(hooks) {
let controller = this.owner.factoryFor('controller:create/options-datetime').create({
model: {
options: [
EmberObject.create({ title: '2015-01-01T12:00:00.000Z' }),
EmberObject.create({ title: moment('2015-01-01T12:00').toISOString() }),
dirtyOption,
EmberObject.create({ title: '2017-11-11' }),
EmberObject.create({ title: '2018-04-04T11:11:00.000Z' })
EmberObject.create({ title: moment('2018-04-04T11:11').toISOString() })
]
}
});
run(() => {
controller.normalizeOptions();
});
controller.normalizeOptions();
assert.equal(
controller.get('options.length'),
3,

781
yarn.lock

File diff suppressed because it is too large Load diff