summaryrefslogtreecommitdiff
path: root/date-fns/scripts/test
diff options
context:
space:
mode:
Diffstat (limited to 'date-fns/scripts/test')
-rwxr-xr-xdate-fns/scripts/test/ci.sh50
-rwxr-xr-xdate-fns/scripts/test/countTests.sh14
-rwxr-xr-xdate-fns/scripts/test/coverageReport.sh12
-rwxr-xr-xdate-fns/scripts/test/dst.sh18
-rwxr-xr-xdate-fns/scripts/test/formatISO.sh12
-rwxr-xr-xdate-fns/scripts/test/formatRFC3339.sh17
-rwxr-xr-xdate-fns/scripts/test/node.sh19
-rwxr-xr-xdate-fns/scripts/test/smoke.sh23
-rwxr-xr-xdate-fns/scripts/test/tz.sh20
-rwxr-xr-xdate-fns/scripts/test/tzExtended.sh368
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