diff options
Diffstat (limited to 'date-fns/scripts/test')
-rwxr-xr-x | date-fns/scripts/test/ci.sh | 50 | ||||
-rwxr-xr-x | date-fns/scripts/test/countTests.sh | 14 | ||||
-rwxr-xr-x | date-fns/scripts/test/coverageReport.sh | 12 | ||||
-rwxr-xr-x | date-fns/scripts/test/dst.sh | 18 | ||||
-rwxr-xr-x | date-fns/scripts/test/formatISO.sh | 12 | ||||
-rwxr-xr-x | date-fns/scripts/test/formatRFC3339.sh | 17 | ||||
-rwxr-xr-x | date-fns/scripts/test/node.sh | 19 | ||||
-rwxr-xr-x | date-fns/scripts/test/smoke.sh | 23 | ||||
-rwxr-xr-x | date-fns/scripts/test/tz.sh | 20 | ||||
-rwxr-xr-x | date-fns/scripts/test/tzExtended.sh | 368 |
10 files changed, 553 insertions, 0 deletions
diff --git a/date-fns/scripts/test/ci.sh b/date-fns/scripts/test/ci.sh new file mode 100755 index 0000000..6ec5bfc --- /dev/null +++ b/date-fns/scripts/test/ci.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# The script unifies the test scripts. +# +# It's used as the main CI script. + +set -ex + +export PATH="$(yarn bin):$PATH" + +function prebuild { + env BUILD_TESTS=true webpack-cli --config ./config/webpack.js +} + +if [ "$TEST_SUITE" == "main" ] +then + yarn lint + yarn lint-types + yarn locale-snapshots test + ./scripts/test/smoke.sh + + yarn test --single-run + + ./scripts/test/dst.sh + ./scripts/test/formatISO.sh + ./scripts/test/formatRFC3339.sh + + prebuild + ./scripts/test/tz.sh + +elif [ "$TEST_SUITE" == "tz" ] +then + prebuild + ./scripts/test/tzExtended.sh + +elif [ "$TEST_SUITE" == "cross_browser" ] && [ "$SAUCE_USERNAME" != "" ] +then + yarn test-cross-browser + env TEST_CROSS_BROWSER=true yarn test --single-run + +elif [ "$TEST_SUITE" == "node" ] +then + ./scripts/test/node.sh + +else + printf "\n\033[0;31m" "UNKNOWN SUITE!" "\033[0m\n" + exit 1 +fi + +./scripts/test/countTests.sh diff --git a/date-fns/scripts/test/countTests.sh b/date-fns/scripts/test/countTests.sh new file mode 100755 index 0000000..3db4daa --- /dev/null +++ b/date-fns/scripts/test/countTests.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# The script prints the total number of the examples in the test process. +# +# It's a part of the test process +# +# TODO: Write stats to Firebase and display the stats at the site. + +count=$( cat tmp/tests_count.txt 2> /dev/null || echo 0 ) + +printf "\n%bSUITE: %s%b\n" "\x1B[32m" "$TEST_SUITE" "\x1B[0m" +printf "\n%bTOTAL TESTS COMPLETED: %s%b\n" "\x1B[32m" "$count" "\x1B[0m" + +rm -f tmp/tests_count.txt diff --git a/date-fns/scripts/test/coverageReport.sh b/date-fns/scripts/test/coverageReport.sh new file mode 100755 index 0000000..0e7e6a3 --- /dev/null +++ b/date-fns/scripts/test/coverageReport.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# The script generates coverage report and uploads it to Coveralls. +# +# It's a part of the test process + +set -ex + +export PATH="$(yarn bin):$PATH" + +env COVERAGE_REPORT=true yarn test --single-run +cat ./coverage/lcov.info | coveralls diff --git a/date-fns/scripts/test/dst.sh b/date-fns/scripts/test/dst.sh new file mode 100755 index 0000000..5e645b9 --- /dev/null +++ b/date-fns/scripts/test/dst.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# The script runs the DST tests. +# +# It's a part of the test process. + +set -ex + +export PATH="$(yarn bin):$PATH" +export NODE_ENV=test + +env TZ=America/Sao_Paulo babel-node --extensions .ts,.js ./test/dst/parseISO/basic.js +env TZ=Australia/Sydney babel-node --extensions .ts,.js ./test/dst/parseISO/sydney.js +env TZ=Pacific/Apia babel-node --extensions .ts,.js ./test/dst/parseISO/samoa.js +env TZ=Asia/Damascus babel-node --extensions .ts,.js ./test/dst/eachDayOfInterval/basic.js +env TZ=America/Santiago babel-node --extensions .ts,.js ./test/dst/addBusinessDays/basic.js +env TZ=Australia/Melbourne ts-node ./test/dst/formatDistanceStrict/melbourne.ts +env TZ=Africa/Cairo ts-node ./test/dst/formatDistanceStrict/cairo.ts
\ No newline at end of file diff --git a/date-fns/scripts/test/formatISO.sh b/date-fns/scripts/test/formatISO.sh new file mode 100755 index 0000000..28fc09e --- /dev/null +++ b/date-fns/scripts/test/formatISO.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# The script runs formatISO in a non%60 timezone offset +# +# It's a part of the test process. + +set -ex + +export PATH="$(yarn bin):$PATH" +export NODE_ENV=test + +env TZ=Asia/Kolkata babel-node --extensions .ts,.js ./test/formatISO/india.js diff --git a/date-fns/scripts/test/formatRFC3339.sh b/date-fns/scripts/test/formatRFC3339.sh new file mode 100755 index 0000000..df8b4cf --- /dev/null +++ b/date-fns/scripts/test/formatRFC3339.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# The script runs formatRFC3339 in a non%60 timezone offset +# +# It's a part of the test process. + +set -ex + +export PATH="$(yarn bin):$PATH" +export NODE_ENV=test + +env TZ=Asia/Kolkata babel-node --extensions .ts,.js ./test/formatRFC3339/india.js +env TZ=America/St_Johns babel-node --extensions .ts,.js ./test/formatRFC3339/newfoundland.js +env TZ=Australia/Eucla babel-node --extensions .ts,.js ./test/formatRFC3339/australia.js +env TZ=Pacific/Chatham babel-node --extensions .ts,.js ./test/formatRFC3339/newzealand.js +env TZ=Europe/Warsaw babel-node --extensions .ts,.js ./test/formatRFC3339/poland.js + diff --git a/date-fns/scripts/test/node.sh b/date-fns/scripts/test/node.sh new file mode 100755 index 0000000..182b72e --- /dev/null +++ b/date-fns/scripts/test/node.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# The script runs the test suite using Jest in different Node.js versions. +# +# It's a part of the test process. + +export PATH="$(yarn bin):$PATH" + +# Update and source nvm +curl -o ~/.nvm/nvm.sh https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/nvm.sh +source ~/.nvm/nvm.sh + +for version in 8 9 10 11 12 +do + echo "Running tests using Node.js $version" + nvm install $version + npm rebuild + jest || exit 1 +done
\ No newline at end of file diff --git a/date-fns/scripts/test/smoke.sh b/date-fns/scripts/test/smoke.sh new file mode 100755 index 0000000..b718edd --- /dev/null +++ b/date-fns/scripts/test/smoke.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# The script runs the smoke test against every supported builder configuration. +# +# It's a part of the test process. + +dir="$(pwd)/examples" + +ok_message="\n\033[0;32m✓ OK!\033[0m\n" +error_message="\n\033[0;31m✗ Something went wrong!\033[0m\n" + +cd "$dir" || exit 1 + +for example in `ls` +do + printf "\n\033[0;32mTesting $example...\033[0m\n\n" + cd "$example" || exit 1 + yarn + yarn build + yarn test || (printf "$error_message" && exit 1) || exit 1 + cd - || exit 1 + printf "$ok_message" +done diff --git a/date-fns/scripts/test/tz.sh b/date-fns/scripts/test/tz.sh new file mode 100755 index 0000000..90d1bd3 --- /dev/null +++ b/date-fns/scripts/test/tz.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# The script runs the test suite against every possible time zone offset. +# +# It's a part of the test process. + +printf "\n" + +for tz in UTC-12:00 UTC-11:00 UTC-10:00 UTC-09:30 UTC-09:00 \ + UTC-08:00 UTC-07:00 UTC-06:00 UTC-05:00 UTC-04:30 UTC-04:00 \ + UTC-03:30 UTC-03:00 UTC-02:00 UTC-01:00 UTC UTC+01:00 UTC+02:00 \ + UTC+03:00 UTC+03:30 UTC+04:00 UTC+04:30 UTC+05:00 UTC+05:30 \ + UTC+05:45 UTC+06:00 UTC+06:30 UTC+07:00 UTC+08:00 UTC+08:30 \ + UTC+08:45 UTC+09:00 UTC+09:30 UTC+10:00 UTC+10:30 UTC+11:00 \ + UTC+11:30 UTC+12:00 UTC+12:45 UTC+13:00 UTC+14:00 +do + printf "Run test in time zone $tz\n" + env TEST_TZ=true USE_STATIC_TESTS=true TZ=$tz yarn test --single-run \ + &>tmp/last_test_output.txt || (cat tmp/last_test_output.txt && exit 1) || exit 1 +done diff --git a/date-fns/scripts/test/tzExtended.sh b/date-fns/scripts/test/tzExtended.sh new file mode 100755 index 0000000..4a20e63 --- /dev/null +++ b/date-fns/scripts/test/tzExtended.sh @@ -0,0 +1,368 @@ +#!/bin/bash + +# The script runs the test suite against every time zone +# in the IANA database. +# +# It's a part of the test process. + +printf "\n" + +tz_array=( + "Africa/Abidjan" + "Africa/Accra" + "Africa/Algiers" + "Africa/Bissau" + "Africa/Cairo" + "Africa/Casablanca" + "Africa/Ceuta" + "Africa/El_Aaiun" + "Africa/Johannesburg" + "Africa/Khartoum" + "Africa/Lagos" + "Africa/Maputo" + "Africa/Monrovia" + "Africa/Nairobi" + "Africa/Ndjamena" + "Africa/Tripoli" + "Africa/Tunis" + "Africa/Windhoek" + "America/Adak" + "America/Anchorage" + "America/Araguaina" + "America/Argentina/Buenos_Aires" + "America/Argentina/Catamarca" + "America/Argentina/Cordoba" + "America/Argentina/Jujuy" + "America/Argentina/La_Rioja" + "America/Argentina/Mendoza" + "America/Argentina/Rio_Gallegos" + "America/Argentina/Salta" + "America/Argentina/San_Juan" + "America/Argentina/San_Luis" + "America/Argentina/Tucuman" + "America/Argentina/Ushuaia" + "America/Asuncion" + "America/Atikokan" + "America/Bahia" + "America/Bahia_Banderas" + "America/Barbados" + "America/Belem" + "America/Belize" + "America/Blanc-Sablon" + "America/Boa_Vista" + "America/Bogota" + "America/Boise" + "America/Cambridge_Bay" + "America/Campo_Grande" + "America/Cancun" + "America/Caracas" + "America/Cayenne" + "America/Cayman" + "America/Chicago" + "America/Chihuahua" + "America/Costa_Rica" + "America/Creston" + "America/Cuiaba" + "America/Curacao" + "America/Danmarkshavn" + "America/Dawson" + "America/Dawson_Creek" + "America/Denver" + "America/Detroit" + "America/Edmonton" + "America/Eirunepe" + "America/El_Salvador" + "America/Fortaleza" + "America/Glace_Bay" + "America/Godthab" + "America/Goose_Bay" + "America/Grand_Turk" + "America/Guatemala" + "America/Guayaquil" + "America/Guyana" + "America/Halifax" + "America/Havana" + "America/Hermosillo" + "America/Indiana/Indianapolis" + "America/Indiana/Knox" + "America/Indiana/Marengo" + "America/Indiana/Petersburg" + "America/Indiana/Tell_City" + "America/Indiana/Vevay" + "America/Indiana/Vincennes" + "America/Indiana/Winamac" + "America/Inuvik" + "America/Iqaluit" + "America/Jamaica" + "America/Juneau" + "America/Kentucky/Louisville" + "America/Kentucky/Monticello" + "America/La_Paz" + "America/Lima" + "America/Los_Angeles" + "America/Maceio" + "America/Managua" + "America/Manaus" + "America/Martinique" + "America/Matamoros" + "America/Mazatlan" + "America/Menominee" + "America/Merida" + "America/Metlakatla" + "America/Mexico_City" + "America/Miquelon" + "America/Moncton" + "America/Monterrey" + "America/Montevideo" + "America/Nassau" + "America/New_York" + "America/Nipigon" + "America/Nome" + "America/Noronha" + "America/North_Dakota/Beulah" + "America/North_Dakota/Center" + "America/North_Dakota/New_Salem" + "America/Ojinaga" + "America/Panama" + "America/Pangnirtung" + "America/Paramaribo" + "America/Phoenix" + "America/Port-au-Prince" + "America/Port_of_Spain" + "America/Porto_Velho" + "America/Puerto_Rico" + "America/Rainy_River" + "America/Rankin_Inlet" + "America/Recife" + "America/Regina" + "America/Resolute" + "America/Rio_Branco" + "America/Santa_Isabel" + "America/Santarem" + "America/Santiago" + "America/Santo_Domingo" + "America/Sao_Paulo" + "America/Scoresbysund" + "America/Sitka" + "America/St_Johns" + "America/Swift_Current" + "America/Tegucigalpa" + "America/Thule" + "America/Thunder_Bay" + "America/Tijuana" + "America/Toronto" + "America/Vancouver" + "America/Whitehorse" + "America/Winnipeg" + "America/Yakutat" + "America/Yellowknife" + "Antarctica/Casey" + "Antarctica/Davis" + "Antarctica/DumontDUrville" + "Antarctica/Macquarie" + "Antarctica/Mawson" + "Antarctica/Palmer" + "Antarctica/Rothera" + "Antarctica/Syowa" + "Antarctica/Troll" + "Antarctica/Vostok" + "Asia/Almaty" + "Asia/Amman" + "Asia/Anadyr" + "Asia/Aqtau" + "Asia/Aqtobe" + "Asia/Ashgabat" + "Asia/Baghdad" + "Asia/Baku" + "Asia/Bangkok" + "Asia/Beirut" + "Asia/Bishkek" + "Asia/Brunei" + "Asia/Chita" + "Asia/Choibalsan" + "Asia/Colombo" + "Asia/Damascus" + "Asia/Dhaka" + "Asia/Dili" + "Asia/Dubai" + "Asia/Dushanbe" + "Asia/Gaza" + "Asia/Hebron" + "Asia/Ho_Chi_Minh" + "Asia/Hong_Kong" + "Asia/Hovd" + "Asia/Irkutsk" + "Asia/Jakarta" + "Asia/Jayapura" + "Asia/Jerusalem" + "Asia/Kabul" + "Asia/Kamchatka" + "Asia/Karachi" + "Asia/Kathmandu" + "Asia/Khandyga" + "Asia/Kolkata" + "Asia/Krasnoyarsk" + "Asia/Kuala_Lumpur" + "Asia/Kuching" + "Asia/Macau" + "Asia/Magadan" + "Asia/Makassar" + "Asia/Manila" + "Asia/Nicosia" + "Asia/Novokuznetsk" + "Asia/Novosibirsk" + "Asia/Omsk" + "Asia/Oral" + "Asia/Pontianak" + "Asia/Pyongyang" + "Asia/Qatar" + "Asia/Qyzylorda" + "Asia/Rangoon" + "Asia/Riyadh" + "Asia/Sakhalin" + "Asia/Samarkand" + "Asia/Seoul" + "Asia/Shanghai" + "Asia/Singapore" + "Asia/Srednekolymsk" + "Asia/Taipei" + "Asia/Tashkent" + "Asia/Tbilisi" + "Asia/Tehran" + "Asia/Thimphu" + "Asia/Tokyo" + "Asia/Ulaanbaatar" + "Asia/Urumqi" + "Asia/Ust-Nera" + "Asia/Vladivostok" + "Asia/Yakutsk" + "Asia/Yekaterinburg" + "Asia/Yerevan" + "Atlantic/Azores" + "Atlantic/Bermuda" + "Atlantic/Canary" + "Atlantic/Cape_Verde" + "Atlantic/Faroe" + "Atlantic/Madeira" + "Atlantic/Reykjavik" + "Atlantic/South_Georgia" + "Atlantic/Stanley" + "Australia/Adelaide" + "Australia/Brisbane" + "Australia/Broken_Hill" + "Australia/Currie" + "Australia/Darwin" + "Australia/Eucla" + "Australia/Hobart" + "Australia/Lindeman" + "Australia/Lord_Howe" + "Australia/Melbourne" + "Australia/Perth" + "Australia/Sydney" + "Europe/Amsterdam" + "Europe/Andorra" + "Europe/Athens" + "Europe/Belgrade" + "Europe/Berlin" + "Europe/Brussels" + "Europe/Bucharest" + "Europe/Budapest" + "Europe/Chisinau" + "Europe/Copenhagen" + "Europe/Dublin" + "Europe/Gibraltar" + "Europe/Helsinki" + "Europe/Istanbul" + "Europe/Kaliningrad" + "Europe/Kiev" + "Europe/Lisbon" + "Europe/London" + "Europe/Luxembourg" + "Europe/Madrid" + "Europe/Malta" + "Europe/Minsk" + "Europe/Monaco" + "Europe/Moscow" + "Europe/Oslo" + "Europe/Paris" + "Europe/Prague" + "Europe/Riga" + "Europe/Rome" + "Europe/Samara" + "Europe/Simferopol" + "Europe/Sofia" + "Europe/Stockholm" + "Europe/Tallinn" + "Europe/Tirane" + "Europe/Uzhgorod" + "Europe/Vienna" + "Europe/Vilnius" + "Europe/Volgograd" + "Europe/Warsaw" + "Europe/Zaporozhye" + "Europe/Zurich" + "Indian/Chagos" + "Indian/Christmas" + "Indian/Cocos" + "Indian/Kerguelen" + "Indian/Mahe" + "Indian/Maldives" + "Indian/Mauritius" + "Indian/Reunion" + "Pacific/Apia" + "Pacific/Auckland" + "Pacific/Bougainville" + "Pacific/Chatham" + "Pacific/Chuuk" + "Pacific/Easter" + "Pacific/Efate" + "Pacific/Enderbury" + "Pacific/Fakaofo" + "Pacific/Fiji" + "Pacific/Funafuti" + "Pacific/Galapagos" + "Pacific/Gambier" + "Pacific/Guadalcanal" + "Pacific/Guam" + "Pacific/Honolulu" + "Pacific/Kiritimati" + "Pacific/Kosrae" + "Pacific/Kwajalein" + "Pacific/Majuro" + "Pacific/Marquesas" + "Pacific/Nauru" + "Pacific/Niue" + "Pacific/Norfolk" + "Pacific/Noumea" + "Pacific/Pago_Pago" + "Pacific/Palau" + "Pacific/Pitcairn" + "Pacific/Pohnpei" + "Pacific/Port_Moresby" + "Pacific/Rarotonga" + "Pacific/Tahiti" + "Pacific/Tarawa" + "Pacific/Tongatapu" + "Pacific/Wake" + "Pacific/Wallis" +) + +# Split array by max $TZ_LENGTH elements and take array with index $TZ_INDEX +if [ "$TZ_LENGTH" != "" ] && [ "$TZ_INDEX" != "" ] +then + tz_array_length="${#tz_array[@]}" + + # divide $tz_array_length by $TZ_LENGTH and round up + tz_limit="$((($tz_array_length + $TZ_LENGTH - 1) / $TZ_LENGTH))" + + tz_offset="$(($TZ_INDEX * $tz_limit))" + + tz_array=("${tz_array[@]:$tz_offset:$tz_limit}") +fi + +for tz in "${tz_array[@]}" +do + printf "Run test in time zone $tz\n" + env TEST_TZ=true USE_STATIC_TESTS=true TZ=$tz yarn test --single-run \ + &>tmp/last_test_output.txt || (cat tmp/last_test_output.txt && exit 1) || exit 1 +done |