From 16c34f1c9d3f95a250f9f6dfc7b92bcf9d5f56d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Mon, 1 Jul 2024 12:57:08 +0200 Subject: [PATCH 1/6] feat: maestro added as dependency --- package.json | 1 + yarn.lock | 102 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 94 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 0af3cb28..1e3d13fd 100644 --- a/package.json +++ b/package.json @@ -141,6 +141,7 @@ "i18next": "^23.7.20", "jotai": "^2.8.1", "jwt-decode": "^4.0.0", + "maestro": "^2.1.1", "moti": "^0.25.3", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/yarn.lock b/yarn.lock index 52143a83..bde4c328 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4100,6 +4100,22 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +aws-sdk@^2.724.0: + version "2.1651.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1651.0.tgz#1b3cd731dbbfd08072793c5d3e480953b689c0eb" + integrity sha512-MZjQvvOPkKcx1N428ejUjqSfhm4TAIcgPIgpniiDMw1LjB1yA8JBZvrWer6J6MACAXQ99v0uKE4BSvtYn+AT3g== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.16.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + util "^0.12.4" + uuid "8.0.0" + xml2js "0.6.2" + axios@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" @@ -4264,7 +4280,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -4419,6 +4435,15 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffer@^5.4.3, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -6126,6 +6151,11 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +events@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -7507,7 +7537,12 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13: +ieee754@1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -7985,16 +8020,16 @@ is-wsl@^2.0.0, is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -8504,6 +8539,11 @@ jimp-compact@0.16.1: resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== +jmespath@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" + integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== + joi@^17.2.1: version "17.13.1" resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca" @@ -9067,6 +9107,14 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +maestro@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/maestro/-/maestro-2.1.1.tgz#f09d9fce4914995aec3a584d4924d8e83c7070a4" + integrity sha512-orHkatrYOwBntNOPc7wInZ6uskLM5StaEJN8knqOapcpLHlL/zWZquh8tAWmFPwVzYdMC0CQUVTgncnu1xG/yQ== + dependencies: + aws-sdk "^2.724.0" + minimist "^1.2.5" + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -9480,7 +9528,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -10863,6 +10911,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -10895,6 +10948,11 @@ query-string@^7.1.3: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + querystring@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" @@ -11599,6 +11657,11 @@ sass@^1.77.2: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== + sax@>=0.6.0: version "1.3.0" resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" @@ -12996,6 +13059,14 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== + dependencies: + punycode "1.3.2" + querystring "0.2.0" + use-debounce@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-9.0.4.tgz#51d25d856fbdfeb537553972ce3943b897f1ac85" @@ -13016,7 +13087,7 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.3, util@^0.12.5: +util@^0.12.3, util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -13042,6 +13113,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" + integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== + uuid@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" @@ -13497,6 +13573,14 @@ xml2js@0.6.0: sax ">=0.6.0" xmlbuilder "~11.0.0" +xml2js@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.2.tgz#dd0b630083aa09c161e25a4d0901e2b2a929b499" + integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + xmlbuilder@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-14.0.0.tgz#876b5aec4f05ffd5feb97b0a871c855d16fbeb8c" From bd9fd997eaae80fee95b976165dd225cb1a6e69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Mon, 1 Jul 2024 21:08:48 +0200 Subject: [PATCH 2/6] feat: meastro up to Components --- .maestro/example/application-info.yaml | 8 +++++ .maestro/example/colors.yaml | 6 ++++ .maestro/example/components.yaml | 42 ++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 .maestro/example/application-info.yaml create mode 100644 .maestro/example/colors.yaml create mode 100644 .maestro/example/components.yaml diff --git a/.maestro/example/application-info.yaml b/.maestro/example/application-info.yaml new file mode 100644 index 00000000..f1a3d00b --- /dev/null +++ b/.maestro/example/application-info.yaml @@ -0,0 +1,8 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to ApplicationInfo' +- tapOn: 'Go to ApplicationInfo' +- assertVisible: 'Go back' +- tapOn: 'Go back' +- assertVisible: 'Discard' +- tapOn: 'Discard' diff --git a/.maestro/example/colors.yaml b/.maestro/example/colors.yaml new file mode 100644 index 00000000..3fa1451f --- /dev/null +++ b/.maestro/example/colors.yaml @@ -0,0 +1,6 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to Colors' +- tapOn: 'Go to Colors' +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/example/components.yaml b/.maestro/example/components.yaml new file mode 100644 index 00000000..ad545cb7 --- /dev/null +++ b/.maestro/example/components.yaml @@ -0,0 +1,42 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to Components' +- tapOn: 'Go to Components' +- assertVisible: 'Test notification' +- tapOn: 'Test notification' +- assertVisible: 'Button primary' +- tapOn: 'Button primary' +# - assertVisible: 'Button with icons' +# - tapOn: 'Button with icons' +- assertVisible: 'Button primary destructive' +- tapOn: 'Button primary destructive' +- assertVisible: 'Button secondary color' +- tapOn: 'Button secondary color' +- assertVisible: 'Button secondary gray' +- tapOn: 'Button secondary gray' +- assertVisible: 'Button secondary destructive' +- tapOn: 'Button secondary destructive' +- assertVisible: 'Button tertiary color' +- tapOn: 'Button tertiary color' +- assertVisible: 'Button tertiary gray' +- tapOn: 'Button tertiary gray' +- assertVisible: 'Button tertiary destructive' +- tapOn: 'Button tertiary destructive' +- assertVisible: 'Button link color' +- tapOn: 'Button link color' +- assertVisible: 'Button link gray' +- tapOn: 'Button link gray' +- assertVisible: 'Button link destructive' +- tapOn: 'Button link destructive' +# - assertVisible: 'Log in with Google' +# - tapOn: 'Log in with Google' +# - assertVisible: 'Log in with Facebook' +# - tapOn: 'Log in with Facebook' +# - assertVisible: 'Log in with Apple' +# - tapOn: 'Log in with Apple' +- assertVisible: 'Remember me' +- doubleTapOn: 'Remember me' +- assertVisible: '31-40' +- tapOn: '31-40' +- assertVisible: 'Examples' +- tapOn: 'Examples' From b5a491839cdce56b6b9fccd9f24b6bebd97a7236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Mon, 1 Jul 2024 21:14:23 +0200 Subject: [PATCH 3/6] feat: meastro up to Components --- .maestro/app/tabs.yaml | 19 ++++++++++++ .maestro/auth/login-with-validation.yaml | 24 ++++++++++++++++ .maestro/categories/categories.yaml | 3 ++ .maestro/config.yaml | 11 +++++++ .maestro/home/blog.yaml | 5 ++++ .maestro/home/details.yaml | 35 +++++++++++++++++++++++ .maestro/home/full-screen-form.yaml | 8 ++++++ .maestro/utils/hide-keyboard-android.yaml | 5 ++++ .maestro/utils/hide-keyboard-ios.yaml | 6 ++++ .maestro/utils/hide-keyboard.yaml | 12 ++++++++ .maestro/utils/login.yaml | 22 ++++++++++++++ .maestro/utils/onboarding-and-login.yaml | 12 ++++++++ .maestro/utils/onboarding.yaml | 8 ++++++ 13 files changed, 170 insertions(+) create mode 100644 .maestro/app/tabs.yaml create mode 100644 .maestro/auth/login-with-validation.yaml create mode 100644 .maestro/categories/categories.yaml create mode 100644 .maestro/config.yaml create mode 100644 .maestro/home/blog.yaml create mode 100644 .maestro/home/details.yaml create mode 100644 .maestro/home/full-screen-form.yaml create mode 100644 .maestro/utils/hide-keyboard-android.yaml create mode 100644 .maestro/utils/hide-keyboard-ios.yaml create mode 100644 .maestro/utils/hide-keyboard.yaml create mode 100644 .maestro/utils/login.yaml create mode 100644 .maestro/utils/onboarding-and-login.yaml create mode 100644 .maestro/utils/onboarding.yaml diff --git a/.maestro/app/tabs.yaml b/.maestro/app/tabs.yaml new file mode 100644 index 00000000..0b2c1b00 --- /dev/null +++ b/.maestro/app/tabs.yaml @@ -0,0 +1,19 @@ +appId: com.expo-ownerapp.development +env: + Name: 'User' + EMAIL: 'user@test.com' + PASSWORD: 'password' +--- +- launchApp +- runFlow: ../utils/onboarding-and-login.yaml +- assertVisible: 'Feed' +- assertVisible: + id: 'style-tab' +- tapOn: + id: 'style-tab' +- assertVisible: 'Typography' +- tapOn: + id: 'settings-tab' +- assertVisible: 'Settings' +- scroll +- assertVisible: 'Logout' diff --git a/.maestro/auth/login-with-validation.yaml b/.maestro/auth/login-with-validation.yaml new file mode 100644 index 00000000..4181a680 --- /dev/null +++ b/.maestro/auth/login-with-validation.yaml @@ -0,0 +1,24 @@ +appId: host.exp.Exponent +--- +- launchApp +- tapOn: + text: 'BACA (qa)' +- assertVisible: 'Welcome back' +- tapOn: + id: 'signInButton' +- assertVisible: 'Home' +# - assertVisible: 'SDK version' +# - tapOn: +# text: 'Continue' +# - assertVisible: 'E-mail address*' +# - tapOn: +# id: 'emailInput' +# - inputText: 'mateusz.rostkowski+baca@binarapps.com' # Email ingresado directamente +# - assertVisible: 'Password*' +# - tapOn: +# id: 'passwordInput' +# - inputText: 'password' # ContraseƱa ingresada directamente +# - assertVisible: +# id: 'signInButton' +# - tapOn: +# id: 'signInButton' diff --git a/.maestro/categories/categories.yaml b/.maestro/categories/categories.yaml new file mode 100644 index 00000000..b5eb840f --- /dev/null +++ b/.maestro/categories/categories.yaml @@ -0,0 +1,3 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Categories screen' diff --git a/.maestro/config.yaml b/.maestro/config.yaml new file mode 100644 index 00000000..b5cc90b6 --- /dev/null +++ b/.maestro/config.yaml @@ -0,0 +1,11 @@ +flows: + - auth/* + - app/* + +excludeTags: + - util + +executionOrder: + continueOnFailure: true + flowsOrder: + - login-with-validation diff --git a/.maestro/home/blog.yaml b/.maestro/home/blog.yaml new file mode 100644 index 00000000..570e2b6b --- /dev/null +++ b/.maestro/home/blog.yaml @@ -0,0 +1,5 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Open blog' +- tapOn: 'Open blog' +- assertVisible: 'Contact data' diff --git a/.maestro/home/details.yaml b/.maestro/home/details.yaml new file mode 100644 index 00000000..b2ce782c --- /dev/null +++ b/.maestro/home/details.yaml @@ -0,0 +1,35 @@ +appId: host.exp.Exponent +env: + Title: 'Post title' + CONTENT: "It is a long established fact that a reader will be distracted by the\ + \ readable content of a page when looking at its layout. The point of using Lorem\ + \ Ipsum is that it has a more-or-less normal distribution of letters, as opposed\ + \ to using" +--- +# - launchApp +# - runFlow: ../utils/onboarding-and-login.yaml +- assertVisible: 'Details' +- tapOn: 'Details' +- assertVisible: 'Open BottomSheetModal' +- tapOn: 'Open BottomSheetModal' +# - assertVisible: 'sheet' +# - doubleTapOn: +# text: 'Text' +# delay: 200 +# - assertVisible: 'Create' +# - tapOn: 'Create' +# - assertVisible: 'Add Post' +# - tapOn: +# id: 'title' +# - inputText: ${Title} +# - tapOn: +# id: 'body-input' +# - inputText: 'short content' +# - tapOn: +# id: 'add-post-button' +# - assertVisible: 'String must contain at least 120 character(s)' +# - inputText: ${CONTENT} +# - runFlow: ../utils/hide-keyboard.yaml +# - tapOn: +# id: 'add-post-button' +# - assertVisible: 'Post added successfully' diff --git a/.maestro/home/full-screen-form.yaml b/.maestro/home/full-screen-form.yaml new file mode 100644 index 00000000..da079697 --- /dev/null +++ b/.maestro/home/full-screen-form.yaml @@ -0,0 +1,8 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Open full screen form' +- tapOn: 'Open full screen form' +- assertVisible: 'Contact data' +# - tapOn: +# id: 'Name' +# - inputText: 'Olaf' diff --git a/.maestro/utils/hide-keyboard-android.yaml b/.maestro/utils/hide-keyboard-android.yaml new file mode 100644 index 00000000..b92bc02d --- /dev/null +++ b/.maestro/utils/hide-keyboard-android.yaml @@ -0,0 +1,5 @@ +appId: ${APP_ID} +tags: + - util +--- +- hideKeyboard diff --git a/.maestro/utils/hide-keyboard-ios.yaml b/.maestro/utils/hide-keyboard-ios.yaml new file mode 100644 index 00000000..0a0ff6fa --- /dev/null +++ b/.maestro/utils/hide-keyboard-ios.yaml @@ -0,0 +1,6 @@ +appId: ${APP_ID} +tags: + - util +--- +- tapOn: + id: 'Return' # Keyboard Return diff --git a/.maestro/utils/hide-keyboard.yaml b/.maestro/utils/hide-keyboard.yaml new file mode 100644 index 00000000..ca332310 --- /dev/null +++ b/.maestro/utils/hide-keyboard.yaml @@ -0,0 +1,12 @@ +appId: ${APP_ID} +tags: + - util +--- +- runFlow: + when: + platform: iOS + file: ./hide-keyboard-ios.yaml +- runFlow: + when: + platform: Android + file: ./hide-keyboard-android.yaml diff --git a/.maestro/utils/login.yaml b/.maestro/utils/login.yaml new file mode 100644 index 00000000..aca9f74e --- /dev/null +++ b/.maestro/utils/login.yaml @@ -0,0 +1,22 @@ +appId: ${APP_ID} +env: + Name: 'User' + EMAIL: 'user@test.com' + PASSWORD: 'password' +tags: + - util +--- +- tapOn: + id: 'name' +- inputText: ${Name} +- tapOn: + id: 'email-input' +- inputText: ${EMAIL} +- runFlow: ../utils/hide-keyboard.yaml +- tapOn: + id: 'password-input' +- inputText: ${PASSWORD} +- runFlow: ../utils/hide-keyboard.yaml +- tapOn: + id: 'login-button' +- assertVisible: 'Typography' diff --git a/.maestro/utils/onboarding-and-login.yaml b/.maestro/utils/onboarding-and-login.yaml new file mode 100644 index 00000000..502f2de9 --- /dev/null +++ b/.maestro/utils/onboarding-and-login.yaml @@ -0,0 +1,12 @@ +appId: ${APP_ID} +tags: + - util +--- +- runFlow: + when: + visible: 'Obytes Starter' + file: onboarding.yaml +- runFlow: + when: + visible: Sign In + file: login.yaml diff --git a/.maestro/utils/onboarding.yaml b/.maestro/utils/onboarding.yaml new file mode 100644 index 00000000..bb1b8937 --- /dev/null +++ b/.maestro/utils/onboarding.yaml @@ -0,0 +1,8 @@ +appId: ${APP_ID} +tags: + - util +--- +- assertVisible: 'Obytes Starter' +- assertVisible: "Let's Get Started " +- tapOn: "Let's Get Started " +- assertVisible: 'Sign In' From dd9da6245c2fba1af880acf6981fea82f6413944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Tue, 2 Jul 2024 12:52:45 +0200 Subject: [PATCH 4/6] feat: maestro up to profile added as individual tests --- .maestro/example/data-backend.yaml | 6 ++++ .maestro/example/homestack.yaml | 14 +++++++++ .maestro/example/notifications-helpers.yaml | 34 +++++++++++++++++++++ .maestro/example/test-form.yaml | 7 +++++ .maestro/example/typography.yaml | 21 +++++++++++++ .maestro/example/user-session.yaml | 16 ++++++++++ .maestro/home/details.yaml | 23 -------------- .maestro/profile/profile.yaml | 26 ++++++++++++++++ .maestro/settings/settings.yaml | 8 +++++ 9 files changed, 132 insertions(+), 23 deletions(-) create mode 100644 .maestro/example/data-backend.yaml create mode 100644 .maestro/example/homestack.yaml create mode 100644 .maestro/example/notifications-helpers.yaml create mode 100644 .maestro/example/test-form.yaml create mode 100644 .maestro/example/typography.yaml create mode 100644 .maestro/example/user-session.yaml create mode 100644 .maestro/profile/profile.yaml create mode 100644 .maestro/settings/settings.yaml diff --git a/.maestro/example/data-backend.yaml b/.maestro/example/data-backend.yaml new file mode 100644 index 00000000..f3bf2aa6 --- /dev/null +++ b/.maestro/example/data-backend.yaml @@ -0,0 +1,6 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to screen with data from BE' +- tapOn: 'Go to screen with data from BE' +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/example/homestack.yaml b/.maestro/example/homestack.yaml new file mode 100644 index 00000000..22f8c884 --- /dev/null +++ b/.maestro/example/homestack.yaml @@ -0,0 +1,14 @@ +appId: host.exp.Exponent +env: + Title: 'Post title' + CONTENT: "It is a long established fact that a reader will be distracted by the\ + \ readable content of a page when looking at its layout. The point of using Lorem\ + \ Ipsum is that it has a more-or-less normal distribution of letters, as opposed\ + \ to using" +--- +- assertVisible: 'Go to HomeStackDetails' +- tapOn: 'Go to HomeStackDetails' +- assertVisible: 'Open BottomSheetModal' +- tapOn: 'Open BottomSheetModal' +# - assertVisible: 'Example' +# - tapOn: 'Example' diff --git a/.maestro/example/notifications-helpers.yaml b/.maestro/example/notifications-helpers.yaml new file mode 100644 index 00000000..9f14863a --- /dev/null +++ b/.maestro/example/notifications-helpers.yaml @@ -0,0 +1,34 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to push notifications helpers' +- tapOn: 'Go to push notifications helpers' +- assertVisible: 'Copy push token' +- tapOn: 'Copy push token' +- assertVisible: 'OK' +- tapOn: 'OK' +- assertVisible: 'Check notifications permission status' +- tapOn: 'Check notifications permission status' +- scrollUntilVisible: + element: + text: 'Last push notification data' + direction: DOWN + timeout: 15000 + speed: 40 + visibilityPercentage: 100 +- scrollUntilVisible: + element: + text: 'Scheduled notifications' + direction: DOWN + timeout: 15000 + speed: 40 + visibilityPercentage: 100 +- assertVisible: 'Schedule new push notification - 10 seconds' +- tapOn: 'Schedule new push notification - 10 seconds' +- assertVisible: 'Get list of scheduled notifications' +- tapOn: 'Get list of scheduled notifications' +- assertVisible: 'PUSH TITLE' +- tapOn: 'Ok' +- assertVisible: 'Get list of scheduled notifications' +- tapOn: 'Get list of scheduled notifications' +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/example/test-form.yaml b/.maestro/example/test-form.yaml new file mode 100644 index 00000000..895c0255 --- /dev/null +++ b/.maestro/example/test-form.yaml @@ -0,0 +1,7 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to test form' +- tapOn: 'Go to test form' +- assertVisible: 'Contact data' +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/example/typography.yaml b/.maestro/example/typography.yaml new file mode 100644 index 00000000..455fc500 --- /dev/null +++ b/.maestro/example/typography.yaml @@ -0,0 +1,21 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to Typography' +- tapOn: 'Go to Typography' +- scrollUntilVisible: + element: + text: 'Display - MdBold' + direction: DOWN + timeout: 15000 + speed: 90 + visibilityPercentage: 100 + centerElement: true +- scrollUntilVisible: + element: + text: 'Text - XsRegular' + direction: DOWN + timeout: 15000 + speed: 90 + visibilityPercentage: 100 +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/example/user-session.yaml b/.maestro/example/user-session.yaml new file mode 100644 index 00000000..9400a0b4 --- /dev/null +++ b/.maestro/example/user-session.yaml @@ -0,0 +1,16 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Go to user session' +- tapOn: 'Go to user session' +- assertVisible: 'Refetch user' +- tapOn: 'Refetch user' +- scrollUntilVisible: + element: + text: 'Try to get new token if needed' + direction: DOWN + timeout: 10000 + speed: 50 + visibilityPercentage: 100 +- tapOn: 'Try to get new token if needed' +- assertVisible: 'Examples' +- tapOn: 'Examples' diff --git a/.maestro/home/details.yaml b/.maestro/home/details.yaml index b2ce782c..2bb711d7 100644 --- a/.maestro/home/details.yaml +++ b/.maestro/home/details.yaml @@ -6,30 +6,7 @@ env: \ Ipsum is that it has a more-or-less normal distribution of letters, as opposed\ \ to using" --- -# - launchApp -# - runFlow: ../utils/onboarding-and-login.yaml - assertVisible: 'Details' - tapOn: 'Details' - assertVisible: 'Open BottomSheetModal' - tapOn: 'Open BottomSheetModal' -# - assertVisible: 'sheet' -# - doubleTapOn: -# text: 'Text' -# delay: 200 -# - assertVisible: 'Create' -# - tapOn: 'Create' -# - assertVisible: 'Add Post' -# - tapOn: -# id: 'title' -# - inputText: ${Title} -# - tapOn: -# id: 'body-input' -# - inputText: 'short content' -# - tapOn: -# id: 'add-post-button' -# - assertVisible: 'String must contain at least 120 character(s)' -# - inputText: ${CONTENT} -# - runFlow: ../utils/hide-keyboard.yaml -# - tapOn: -# id: 'add-post-button' -# - assertVisible: 'Post added successfully' diff --git a/.maestro/profile/profile.yaml b/.maestro/profile/profile.yaml new file mode 100644 index 00000000..447caa4e --- /dev/null +++ b/.maestro/profile/profile.yaml @@ -0,0 +1,26 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'Upload' +- tapOn: 'Upload' +- assertVisible: 'Photos' +- tapOn: + index: 1 +- assertVisible: 'Choose' +- tapOn: 'Choose' +- assertVisible: 'First name' +- inputText: 'mattsaa' +- assertVisible: 'Last name' +- inputText: 'mat' +- assertVisible: 'Save' +- tapOn: 'Save' +- scrollUntilVisible: + element: + text: 'Remove account' + direction: DOWN + timeout: 15000 + speed: 40 + visibilityPercentage: 100 +- assertVisible: 'Remove account' +- tapOn: 'Remove account' +- assertVisible: 'Cancel' +- tapOn: 'Cancel' diff --git a/.maestro/settings/settings.yaml b/.maestro/settings/settings.yaml new file mode 100644 index 00000000..e0146fd4 --- /dev/null +++ b/.maestro/settings/settings.yaml @@ -0,0 +1,8 @@ +appId: host.exp.Exponent +--- +- assertVisible: 'light' +- tapOn: 'light' +- assertVisible: 'dark' +- tapOn: 'dark' +- assertVisible: 'system' +- tapOn: 'system' From 8559a6c33c1de9a6577416a57ac855ffdf119b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Tue, 2 Jul 2024 14:30:38 +0200 Subject: [PATCH 5/6] chore: improving auth and home --- .maestro/app/tabs.yaml | 19 ------------------- .maestro/auth/login-with-validation.yaml | 20 ++++---------------- .maestro/config.yaml | 23 +++++++++++++++++++++-- .maestro/home/details.yaml | 12 ++++++------ package.json | 11 ++++++----- 5 files changed, 37 insertions(+), 48 deletions(-) delete mode 100644 .maestro/app/tabs.yaml diff --git a/.maestro/app/tabs.yaml b/.maestro/app/tabs.yaml deleted file mode 100644 index 0b2c1b00..00000000 --- a/.maestro/app/tabs.yaml +++ /dev/null @@ -1,19 +0,0 @@ -appId: com.expo-ownerapp.development -env: - Name: 'User' - EMAIL: 'user@test.com' - PASSWORD: 'password' ---- -- launchApp -- runFlow: ../utils/onboarding-and-login.yaml -- assertVisible: 'Feed' -- assertVisible: - id: 'style-tab' -- tapOn: - id: 'style-tab' -- assertVisible: 'Typography' -- tapOn: - id: 'settings-tab' -- assertVisible: 'Settings' -- scroll -- assertVisible: 'Logout' diff --git a/.maestro/auth/login-with-validation.yaml b/.maestro/auth/login-with-validation.yaml index 4181a680..61c29969 100644 --- a/.maestro/auth/login-with-validation.yaml +++ b/.maestro/auth/login-with-validation.yaml @@ -4,21 +4,9 @@ appId: host.exp.Exponent - tapOn: text: 'BACA (qa)' - assertVisible: 'Welcome back' +- assertVisible: 'Remember me' - tapOn: - id: 'signInButton' + text: 'Remember me' +- assertVisible: 'Log in' +- tapOn: 'Log in' - assertVisible: 'Home' -# - assertVisible: 'SDK version' -# - tapOn: -# text: 'Continue' -# - assertVisible: 'E-mail address*' -# - tapOn: -# id: 'emailInput' -# - inputText: 'mateusz.rostkowski+baca@binarapps.com' # Email ingresado directamente -# - assertVisible: 'Password*' -# - tapOn: -# id: 'passwordInput' -# - inputText: 'password' # ContraseƱa ingresada directamente -# - assertVisible: -# id: 'signInButton' -# - tapOn: -# id: 'signInButton' diff --git a/.maestro/config.yaml b/.maestro/config.yaml index b5cc90b6..6bcb08d5 100644 --- a/.maestro/config.yaml +++ b/.maestro/config.yaml @@ -1,11 +1,30 @@ flows: - auth/* - - app/* + - home/* + - categories/* + - example/* + - settings/* + - profile/* excludeTags: - - util + - utils executionOrder: continueOnFailure: true flowsOrder: - login-with-validation + - details + - full-screen-form + - blog + - categories + - application-info + - colors + - components + - typography + - homestack + - data-backend + - test-form + - notifications-helpers + - user-session + - settings + - profile diff --git a/.maestro/home/details.yaml b/.maestro/home/details.yaml index 2bb711d7..f060e538 100644 --- a/.maestro/home/details.yaml +++ b/.maestro/home/details.yaml @@ -1,12 +1,12 @@ appId: host.exp.Exponent -env: - Title: 'Post title' - CONTENT: "It is a long established fact that a reader will be distracted by the\ - \ readable content of a page when looking at its layout. The point of using Lorem\ - \ Ipsum is that it has a more-or-less normal distribution of letters, as opposed\ - \ to using" --- - assertVisible: 'Details' - tapOn: 'Details' - assertVisible: 'Open BottomSheetModal' - tapOn: 'Open BottomSheetModal' +- assertVisible: 'Home' +- tapOn: 'Home' +# - assertVisible: 'Text' +# - tapOn: 'Text' + +# NOT ENDED YET diff --git a/package.json b/package.json index 1e3d13fd..adebb936 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,9 @@ "license": "MIT", "scripts": { "android:dev-client": "IS_DEV=1 npx expo run:android", - "baca": "yarn build:baca-cli && node ./scripts/cli/build/scripts/cli", + "android": "expo run:android", "b": "yarn baca b", - "g": "yarn baca g", + "baca": "yarn build:baca-cli && node ./scripts/cli/build/scripts/cli", "build:baca-cli": "npx tsc -p ./scripts/cli/tsconfig.cli.json", "build:production:android": "yarn prepare:production && eas build --platform android --profile production", "build:production:ios": "yarn prepare:production && eas build --platform ios --profile production", @@ -47,7 +47,9 @@ "deploy:staging:android": "yarn prepare:staging && eas build --platform android --profile staging --auto-submit --non-interactive", "deploy:staging:ios": "yarn prepare:staging && eas build --platform ios --profile staging --auto-submit --non-interactive", "deploy:staging": "yarn prepare:staging && eas build --platform all --profile staging --auto-submit --non-interactive", + "e2e-testing": "maestro test .maestro/ -e APP_ID=host.exp.Exponent", "eas-build-pre-install": "base64 --help && echo $ANDROID_FIREBASE_CONFIG | base64 --decode > google-services.json && cat google-services.json && echo $IOS_FIREBASE_CONFIG | base64 --decode > GoogleService-Info.plist && cat GoogleService-Info.plist", + "g": "yarn baca g", "generate:env:production": "scripts/generate_dotenv.sh production", "generate:env:qa": "scripts/generate_dotenv.sh qa", "generate:env:staging": "scripts/generate_dotenv.sh staging", @@ -55,6 +57,7 @@ "generate:last:publish": "node ./scripts/generate_last_update_id.js", "generate:query": "yarn orval --config ./orval.config.ts", "ios:dev-client": "IS_DEV=1 npx expo run:ios", + "ios": "expo run:ios", "lint:fix": "eslint src --fix", "lint": "eslint src && yarn tsc", "postinstall": "patch-package && yarn build:baca-cli", @@ -87,9 +90,7 @@ "upload:env": "./scripts/upload_env.sh", "web:build": "expo export:web", "web": "cross-env IS_DEV=1 expo start --web", - "whoami": "expo whoami", - "android": "expo run:android", - "ios": "expo run:ios" + "whoami": "expo whoami" }, "dependencies": { "@bacons/react-views": "^1.1.3", From 57b97f26aab23f8fb902ded09e3536d7761d6a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olaf=20Chwo=C5=82ka?= Date: Tue, 2 Jul 2024 16:20:18 +0200 Subject: [PATCH 6/6] fix: icomoon not working, searching for a solution --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index adebb936..d2679ead 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "deploy:staging:android": "yarn prepare:staging && eas build --platform android --profile staging --auto-submit --non-interactive", "deploy:staging:ios": "yarn prepare:staging && eas build --platform ios --profile staging --auto-submit --non-interactive", "deploy:staging": "yarn prepare:staging && eas build --platform all --profile staging --auto-submit --non-interactive", - "e2e-testing": "maestro test .maestro/ -e APP_ID=host.exp.Exponent", "eas-build-pre-install": "base64 --help && echo $ANDROID_FIREBASE_CONFIG | base64 --decode > google-services.json && cat google-services.json && echo $IOS_FIREBASE_CONFIG | base64 --decode > GoogleService-Info.plist && cat GoogleService-Info.plist", "g": "yarn baca g", "generate:env:production": "scripts/generate_dotenv.sh production",