Commit Graph

479 Commits

Author SHA1 Message Date
Jeff Stieler 8e61f55017 Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286)
* Use yarn instead of npm.

In prep for workspaces, since we're locked to npm < 7. See: https://github.com/woocommerce/woocommerce-admin/pull/7126#issue-661287749

* Initial workspace creation.

* Add initial tsc build to @woocommerce/number.

* Attempt to build experimental package.

* Try currency package.

* Define all packages as workspaces.

* Use tsconfig common to packages.

* Fix currency package build.

* Build csv-export with tsc.

* Try to build customer-effort-score with tsc.

* Fix JSX pragma.

* Build data package with tsc.

* Build date package with tsc.

* Build experimental package with tsc.

* Try to build explat package with tsc.

* Build navigation package with tsc.

* Build notices package with tsc.

* Build onboarding package with tsc.

* Build components package with tsc.

* Swap in package JS build into main script.

* Fix experimental package build.

* Try per-package css build with components.

* Try to run components package tests in isolation.

Broken on JSX in test files not being transformed.

* Move @woocommerce/wc-admin-settings into a package.

* Try to fix components package tests.

Fails because we aren't setting up the jest/jest-dom globals.

* Move JS test code to reusable (private) package.

* Enable incremental TS builds.

* Use workspaces to run JS tests.

* Use new jest configs for update snapshot scripts.

* Fix style builds.

* Fix package version in components.

* Fix client test debug and watch scripts.

* Update yarn lock.

* Update test-staged behavior.

* Try to fix storybook.

* Fix storybook.

* Update more npm commands to yarn.

* Add changelog.

* Fix lint errors.

* Update packages readme script references.

* Clean up unused gitignore match.

* Fix another npm command.

* Fix JS builds on watch.

* Fix start script.

* Fix start scripts for packages.

* Use tsc to build packages before tests

* yarn -> npm.

# Conflicts:
#	package-lock.json
#	package.json

* Fix linter error.

* Remove workspace definitions.

* Fix missing Fragment import.

* Fix package lock.

* Fix missing reference.

* Only build commonjs module for js-tests helper.

* Remove errant dependency from components.

* Remove noop scripts.

* Fix package JS build before testing.

* Revert noisy formatting changes.

* Fix precommit and test scripts.

* Fix minimum expected recommended extension count.

Japan test case breaks this.

* Revert babel config changes.

* chore(release): publish

 - @woocommerce/components@7.2.0
 - @woocommerce/csv-export@1.4.0
 - @woocommerce/currency@3.2.0
 - @woocommerce/customer-effort-score@1.1.0
 - @woocommerce/data@1.4.0
 - @woocommerce/date@3.1.0
 - @woocommerce/dependency-extraction-webpack-plugin@1.7.0
 - @woocommerce/eslint-plugin@1.3.0
 - @woocommerce/experimental@1.5.0
 - @woocommerce/explat@1.1.0
 - @woocommerce/js-tests@1.1.0
 - @woocommerce/navigation@6.1.0
 - @woocommerce/notices@3.1.0
 - @woocommerce/number@2.2.0
 - @woocommerce/onboarding@1.1.0
 - @woocommerce/tracks@1.1.0
 - @woocommerce/wc-admin-settings@1.1.0

* Add script for running 'start' in a package.

* Remove yarn from gitignore.

* Update package changelogs, prep versions for release.

* Try to fix E2E tests after main merge.

* Some cleanup.

* Add changelog.

Co-authored-by: Paul Sealock <psealock@gmail.com>
2021-07-14 16:38:57 -04:00
Ron Rennick 4af5eef27b Create E2E package (https://github.com/woocommerce/woocommerce-admin/pull/7084)
* bump E2E package versions to latest

* first pass on E2E test package.json

* move e2e specs to admin-e2e-tests

* add global types, reimplement tests/e2e/specs

* use consistent build dir with other packages

* add documentation, improve test:e2e script

* fix linting issues in admin-e2e-tests

* fix more linting issues

* disable lint on requires

* use e2e in the E2E container names

* move analytics overview test to package

* change extension on analytics-overview test file

* fix linting issues in e2e analytics overview

* remove package scripts from e2e package

* change test specs extensions to .tsx

* remove import from analytics overview test spec

* add .tsx to e2e test spec file extension list

* update e2e business features count expected
2021-07-13 16:38:05 -03:00
Jeff Stieler 12aa391cf0 Fix minimum expected recommended extension count. (https://github.com/woocommerce/woocommerce-admin/pull/7334)
* Fix minimum expected recommended extension count.

Japan test case breaks this.

* Just check for one or more extensions.
2021-07-12 20:03:55 -06:00
Joshua T Flowers d8d14fb9ca Localize payment gateway suggestions on wccom (https://github.com/woocommerce/woocommerce-admin/pull/7217)
* Localize payment gateway suggestions on wccom

* Add user locale as param to source URL

* Fix mock http request params
2021-07-05 17:50:26 -04:00
Joshua T Flowers 41f3d8e99a Remove old payment gateway task components (https://github.com/woocommerce/woocommerce-admin/pull/7224)
* Remove old payment gateway task components

* Move PaymentGatewaySuggestions up one directory

* Add feature check to tasks array

* Turn on payment gateway suggestions in all environments

* Handle PR feedback

* Use gateway suggestions from REST API in help panel

* Fix component path

* Remove BACS test due to SlotFill testing bug

* Await button selector

* Handle PR feedback round 2
2021-06-28 14:18:42 -04:00
louwie17 8b7b8b2011 Add E2E tests for analytics overview screen section removal (https://github.com/woocommerce/woocommerce-admin/pull/7238)
* Add E2E tests for analytics overview screen section removal

* Fix build errors

* Add tests for moving sections up and down
2021-06-24 17:08:16 -03:00
louwie17 c5657002d2 Add date range support to remaining notes (https://github.com/woocommerce/woocommerce-admin/pull/7222)
* Allow custom date range start for date range

* Make use of the date_range logic for any notes using active_for

* Add changelog

* Add a couple extra tests for date range
2021-06-24 11:32:02 -03:00
Jeff Stieler 9f63719baa Fix attribute filter for "any X" variations. (https://github.com/woocommerce/woocommerce-admin/pull/7046)
* Use order item data to match attributes.

Fixes matching on products with "any x" attributes.

* Fix attribute query on variations report.

* Fix variations report item count.

* Add test coverage.

* Add changelog entry.

* Fix non-string query prop warning in SelectControl component.

* Move custom attribute retrieval to a reusable Trait.

* Ensure all custom attribute terms are included in the API response.

* Combine all terms from custom attributes.

When they're split across multiple products.
2021-06-22 08:45:08 -04:00
Jeff Stieler b5f397fa89 Fix report arguments handling in CSV export. (https://github.com/woocommerce/woocommerce-admin/pull/7165)
* Ensure report args are mapped and sanitized before CSV export.

* Add test.

* Fix products query when there are no products in the specified categories.

* Add changelog.
2021-06-18 10:53:52 -06:00
Sam Seay d9daed0a4f Update the wordpress/babel-preset to avoid crashes in WP5.8 beta2 (https://github.com/woocommerce/woocommerce-admin/pull/7202)
* Update the wordpress/babel-preset to avoid crashes in WP5.8 beta2

* Also update other dependencies dropping IE11 support.

* Update data dep in data package.

* Add back regen runtime.

* Add regenerator-runtime dependency for setting up jest tests

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2021-06-18 13:13:17 +08:00
Joshua T Flowers c558a5bceb Add unit tests for payment gateway suggestions data source poller (https://github.com/woocommerce/woocommerce-admin/pull/7153)
* Move data source filter name to constant

* Add unit tests for data source poller

* Handle PR feedback

* Add use statement for DataSourcePoller

* Fix trailing comma
2021-06-16 15:27:48 -04:00
Joshua T Flowers af39737d90 Add EvaluateSuggestion unit tests (https://github.com/woocommerce/woocommerce-admin/pull/7152) 2021-06-15 17:48:30 -04:00
Joshua T Flowers f57edb6e6c Add payment gateway suggestion unit tests (https://github.com/woocommerce/woocommerce-admin/pull/7142)
* Add payment gateway suggestions unit tests

* Fix up old key fields

* Fix up lingering semantic inconsistencies

* Add changelog entry

* Add in default payment gateways for tests

* Handle PR feedback

* Fix up rebased changelog entries
2021-06-15 17:24:10 -04:00
Taha Paksu 399ef81b11 Fix currency display errors in homescreen order activity card (https://github.com/woocommerce/woocommerce-admin/pull/7181) 2021-06-15 21:02:14 +03:00
Joshua T Flowers b9df97c984 Add unit tests around extended payment gateway controller (https://github.com/woocommerce/woocommerce-admin/pull/7133)
* Add unit tests around extended payment gateway controller

* Add changelog entry

* Add mock enhanced gateway and make REST API schema consistent
2021-06-14 10:23:04 -04:00
Jeff Stieler d3fd2f36d0 Include orders without coupons when excluding specific coupon IDs. (https://github.com/woocommerce/woocommerce-admin/pull/7021)
* Include orders without coupons when excluding specific coupon IDs.

* Add changelog entry.

* Fix default Orders before/after query args.

* Specify date range for test query.
2021-06-08 14:56:23 -04:00
Jeff Stieler f432b83365 Revert store setup task list title. (https://github.com/woocommerce/woocommerce-admin/pull/7129) 2021-06-07 11:33:40 -04:00
louwie17 baba993f85 Add remind me later support to task list (https://github.com/woocommerce/woocommerce-admin/pull/6923)
* Initial ellipses menu render on task list

* Added remind me later functionality

* Fixed tests and wrote tests for ellipsis menu

* Update tracks

* Add changelog and update css

* Fix up spacing and track name

* Address PR feedback and add extra integration tests

* Remove the should render correctly test, as the other tests cover this

* Move logic out of mark up

* Directly reference the EllipsisMenu for now to circumvent a circular dependency

* Fix direct import in jest tests

* Preload remind me later optoin

* Some styling animation changes for the task list

* Stagger transitions for dismissing within collapsible list

* Fix lint warnings

* Update logic to prevent the use of TS `as`

* Add tests and comments
2021-06-03 18:44:05 -03:00
Ilyas Foo d936b649fc Remove business step original flow (https://github.com/woocommerce/woocommerce-admin/pull/7103)
* Remove logic flags for business step A/B test

* Delete unused files

* Remove benefits step from profile wizard

* Update related e2e tests

* Update readme

* Rename SelectiveFeaturesBusinessStep to BusinessFeaturesList
2021-06-03 16:33:54 +08:00
Jeff Stieler c23d02bcc0 Add conditional copy/content and CTA to expanded task items (https://github.com/woocommerce/woocommerce-admin/pull/6956)
* Add action button to TaskItem.

* Pass through click event.

* Add separate action and label to onClick.

* Add initial copy for task expansion.

* Expand one task at a time.

* Add descriptive text to the payments step.

* Set the first incomplete task current by default.

* Revert expansion behavior.

* Fix margins.

* Curate purchase products task content based on selections.

* Fix appearance task copy.

* Fix payment task copy.

* Add conditional tax step title.

* Indicated if task is expanded to click handlers.

* Automatically enable WC Tax from the expanded CTA.

* Restore additional text property.

* Fix task title xpath selector in E2E test.

* Fix automatic tax setup query param logic.

* Add changelog entries.
2021-06-01 12:04:21 -06:00
Adrian Duffell 366ffb18b1 Fix formatting in coupons E2E test (https://github.com/woocommerce/woocommerce-admin/pull/7080) 2021-05-27 22:19:51 +08:00
Paul Sealock 40c22add0a Rule processing transformers: Add count rule (https://github.com/woocommerce/woocommerce-admin/pull/7037)
* Add count rule

* better return types

* rename test
2021-05-25 16:32:51 +12:00
Paul Sealock 3ba1afd0ab Rule Processing: pass in default (https://github.com/woocommerce/woocommerce-admin/pull/7009)
* pass default

* handle tests

* changelog
2021-05-25 16:23:49 +12:00
Ilyas Foo 154071c1bc Revert copy for setup checklist (https://github.com/woocommerce/woocommerce-admin/pull/7015)
* Revert copy for index.js and tasks.js

* Update changelog

* Update test

* Update tests

* Update tests again

* Lint
2021-05-21 09:13:40 +08:00
louwie17 7cfaa21db2 Add source support for notes query (https://github.com/woocommerce/woocommerce-admin/pull/6979)
* Add source support for notes query

* Add changelog

* Removed ternary condition
2021-05-14 13:13:51 -03:00
Moon e2d9a8792a Support transformers in remote inbox notifications (https://github.com/woocommerce/woocommerce-admin/pull/6948)
* Introduce Transformer to Remote Inbox Notification
* Added array_column, array_flatten, array_keys, array_search, array_values, and dot_notation transformers.
* Added tests
2021-05-13 21:27:35 -07:00
Joshua T Flowers 685c012dfe Add transient notices feature (https://github.com/woocommerce/woocommerce-admin/pull/6809)
* Add PluginInstaller class

* Redirect to referring page if one exists

* Store message and show after redirect

* Add transient notices feature

* Fix default and empty state of notices

* Use TransientNotices to display plugin notices

* Add transient notices readme

* Add feature unit tests

* Update notice queue client-side

* Add filter to queued option prior to notice creation

* Use the core/notices2 data store

* Fix filtered queued notices

* Add methods to get individual notices and queue

* Allow user ID specific notices

* Remove errant script asset dependencies

* Add user ID property to docs

* Use preloaded option instead of window var

* Refactor transient notices to directly use option instead of state

* Show error message from WP_Error in plugin installer

* Add tests around notice queue in client

* Add changelog entry
2021-05-13 09:08:31 -04:00
louwie17 295cd6b2c9 Add note date range logic (https://github.com/woocommerce/woocommerce-admin/pull/6969)
* Add notes helper method for date ranges

* Update two of the notes with date ranges

* Add tests and fix range logic

* Add changelog

* Update comments

* Update range name and added exception if invalid range passed in.

* Fix php unit tests

* Fix another test
2021-05-13 09:41:21 -03:00
Joel Thiessen 073a220b59 Adding Slotfill extension components for remote payments (https://github.com/woocommerce/woocommerce-admin/pull/6932) 2021-05-11 09:36:56 -07:00
louwie17 094b73561d Fix/6954 script asset filename (https://github.com/woocommerce/woocommerce-admin/pull/6955)
* Update the get_script_asset_filename function calls to match new format

* Added e2e test for the coupons page

* Add changelog

* Remove typo in changelog
2021-05-07 13:29:20 -03:00
Bec Scott 7a0b00ec0c Un-skip product import test, delete all products in the setup (https://github.com/woocommerce/woocommerce-admin/pull/6905)
* un-skip test, delete all products in the setup

* add to readme

* change fix to dev
2021-04-30 11:38:26 +10:00
louwie17 071a68b950 Update task list component to make use of new experimental list (https://github.com/woocommerce/woocommerce-admin/pull/6849)
* Add initial task item component with the new task list

* Switch components to functional components

* Some minor updates from the last rebase

* Fix missing variables.

* Fix tests

* Add animation for the experimental list

* Fix lint error

* Add changelog

* Fix E2E tests

* Update PR suggestions and export list from experimental package

* Fix dismiss styling issue

Co-authored-by: Jeff Stieler <jeff.m.stieler@gmail.com>
2021-04-27 12:23:34 -03:00
Waclaw Jacek 4c17776815 Throw custom exception in NoteTraits if notes are disabled (https://github.com/woocommerce/woocommerce-admin/pull/6771)
A custom exception `NotesUnavailableException` will be thrown on attempts to load the "admin-note" data store using the `Notes::load_data_store()` method introduced in this PR.

All calls to `\WC_Data_Store::load( 'admin-note' )` were replaced with calls to the above method.
2021-04-26 23:57:39 +02:00
louwie17 3ff1e1375e Update E2E config to support screenshots on test failure (https://github.com/woocommerce/woocommerce-admin/pull/6858)
* Add login page wait script for e2e tests

* Re-navigate to login page, if initial selector does not exist

* Add screenshot if login page did not render

* Add screenshot code, and screenshot artifacts to GH action

* Update screenshot logic for login

* Update artifact task

* Update upload artifact workflow

* Update jest config to make sure the screenshots work on test failures

* Remove old screenshot code

* Add screenshots to daily e2e tests as well incase of failure

* Add changelog
2021-04-26 13:41:38 -03:00
Moon 6846036594 Convert date to timestamp before passing to set_date_prop to persist … (https://github.com/woocommerce/woocommerce-admin/pull/6795)
* Convert date to timestamp before passing to set_date_prop to persist the correct timezone
2021-04-20 17:00:30 -07:00
louwie17 be7dd2dd5e Add recommended payment methods (https://github.com/woocommerce/woocommerce-admin/pull/6760)
* Add initial payment recommendations code for the payments settings

* Added request data for the recommended payments

* Some styling updates and make sure it does not show when marketplace suggestions is disabled

* Update url

* Update comment in php class

* Add tests

* Fix lint errors

* Remove unnecessary type

* Fix lint error

* Fix broken test

* Convert plugin package to typescript

* Fix lint errors

* Add changelog

* Add support for locale-data

* Fix track name

* Fix up the tests

* Fix lint errors

* Address PR feedback

* Add tests for option hydration

* Make types more robust in plugins reducer

* Made use of SlotFill component instead of page registry and router

* Removed console log, and fixed types

* Add newer version of i18n to data package, for newer types

* Make the request to WooCommerce.com more restrictive

* Fix path of import

* Update PHP with suggested changes

* Remove SlotFill with applyFilters

* Update copy and PR feedback

* Update package lock

* Updated package lock

* Fix the package lock

* Added dot, and some minor styling changes

* Add test instructions
2021-04-20 14:17:19 -03:00
Joshua T Flowers 8f018fc518 Add plugin installer to allow installation of plugins via URL (https://github.com/woocommerce/woocommerce-admin/pull/6805)
* Allow any plugin to be installed or activated

* Add PluginInstaller class

* Redirect to referring page if one exists

* Store message and show after redirect

* Add changelog and testing instructions
2021-04-16 15:45:43 -04:00
Jeff Stieler 9e05116326 Detect missed DB version number updates and fix them. (https://github.com/woocommerce/woocommerce-admin/pull/6818)
* Detect missed DB version number updates and fix them.

* Add changelog entry.
2021-04-16 15:01:04 -04:00
Adrian Duffell 6434ffb9c8 Add nonce support to note actions (https://github.com/woocommerce/woocommerce-admin/pull/6726)
* Add database columns

* Add support for nonces in note actions

* Add test for nonces in note actions

* Fix db values should default to null

* Fix a bug where URLs had encoded ampersands

* Update variable naming for clarity

* Add throwing an exception when note name not found

* Add tests for nonces in the datastore

* Add changelog

* Fix default paramater name

* Add changelog

* Revert "Add changelog"

This reverts commit f842bc58e4db66c8a497ca4f38d1b0294590192d.
2021-04-16 13:56:39 +08:00
Sam Seay b13feaeafd Add some tweaks to e2e tests to try and resolve flakyness issues (https://github.com/woocommerce/woocommerce-admin/pull/6812) 2021-04-16 10:47:21 +12:00
Paul Sealock 7ab756b76c Try ExPlat: Add A/A test (https://github.com/woocommerce/woocommerce-admin/pull/6669)
* Add basic ExPlat initialization

* add tsx support
2021-04-15 13:32:46 +12:00
Sam Seay 97d143b762 Add in missing awaits that could have been causing tests to be flaky. (https://github.com/woocommerce/woocommerce-admin/pull/6800) 2021-04-15 09:20:44 +12:00
Joshua T Flowers eb6186a29c Refactor payments to allow management of methods (https://github.com/woocommerce/woocommerce-admin/pull/6786)
* Add manage button for enabled and configured payments

* Enable methods only instead of toggling

* Update payment methods location

* Move ribbon to separate component

* Move setup container to separate component

* Move payment action to separate component

* Refactor payments to functional component

* Fix missing action props

* Fix broken onsetup callback

* Update payment method keys to match management pages

* Add changelog and testing instructions

* Revert key changes in favor of manageUrl

* Update e2e tests for payments
2021-04-14 15:26:50 -04:00
Jeff Stieler d819373057 Avoid updating customer info synchronously when "last active" is modified. (https://github.com/woocommerce/woocommerce-admin/pull/6765)
* Schedule (async) customer update when last active date is modified.

* Add test case for scheduled customer update.

* Add changelog entry.
2021-04-12 10:17:02 -04:00
louwie17 b29cd9a6c0 Add support for php8 unit tests (locally and in GH actions) (https://github.com/woocommerce/woocommerce-admin/pull/6678)
* Partial local version to run php8 unit tests

* Remove the post install scripts

* Remove tab

* Make sure woocommerce version contains patch number

* Remove unnecessary script

* Update bin settings and unit test script

* Remove phpunit binary

* Updated how php unit is being run

* Add specific phpunit version for php8

* Update bin phpunit composer.json

* Final cleanup of scripts

* Fix potential test where image is an object

* Move setting image below save

* Add changelog

* Do not convert obj/array to string for email_actions

* Remove some uses of tabs

* Set WP and WC version to minimum php 8 supported

* Remove unnecessary composer install within tests
2021-04-07 14:28:03 -03:00
Sam Seay 9dd75e83f8 Improve page object encapsulation, refactor e2e suite, add more e2e tests. (https://github.com/woocommerce/woocommerce-admin/pull/6682) 2021-04-05 12:09:36 +12:00
Adrian Duffell 20865df164 Fix various php lint errors (https://github.com/woocommerce/woocommerce-admin/pull/6705) 2021-03-31 07:43:34 +08:00
Adrian Duffell b48e2addeb Fix Database Table Creation Test (https://github.com/woocommerce/woocommerce-admin/pull/6670)
* Fix mistake in documentation

* Fix typo in query

* Fix a bug where the tables were not being dropped
2021-03-26 21:52:54 +08:00
Ilyas Foo 6296952949 Improve AddFirstProduct email note contents (https://github.com/woocommerce/woocommerce-admin/pull/6617)
* Add capability for merchant email note personalization, improve AddFirstProduct email note contents.

* Update heading

* Update readme and testing instructions

* Remove old image, fix typo and improve translation
2021-03-26 09:26:07 +08:00
louwie17 d5800c1a7a Check if value for contains comparison is an array (https://github.com/woocommerce/woocommerce-admin/pull/6645)
* Add warning and default to empty array for contains operation, when value is not array

* Add changelog

* Move option is array check and warning to the OptionRuleProcessor

* Added a check for the new_value as well, given we do the same for the old_value
2021-03-25 08:55:36 -03:00