From 14c447c4dc062242d90ca91db1c38915cf3e73b2 Mon Sep 17 00:00:00 2001 From: David Szabo Date: Tue, 27 Apr 2021 14:11:42 +0200 Subject: [PATCH] Explain why undefined is returned sometimes --- packages/e2e-test-utils/README.md | 13 +++++++++++++ packages/e2e-test-utils/src/wp-data-select.js | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/e2e-test-utils/README.md b/packages/e2e-test-utils/README.md index d7e3889ec9dd5..945f4b95e884b 100644 --- a/packages/e2e-test-utils/README.md +++ b/packages/e2e-test-utils/README.md @@ -717,6 +717,19 @@ _Parameters_ Queries the WordPress data module. +`page.evaluate` - used in the function - returns `undefined` +when it encounters a non-serializable value. +Since we store many different values in the data module, +you can end up with an `undefined` result. Before using +this function, make sure the data you are querying +doesn't contain non-serializable values, for example, +functions, DOM element handles, etc. + +_Related_ + +- +- + _Parameters_ - _store_ `string`: Store to query e.g: core/editor, core/blocks... diff --git a/packages/e2e-test-utils/src/wp-data-select.js b/packages/e2e-test-utils/src/wp-data-select.js index 294a242de9a48..65e382730292c 100644 --- a/packages/e2e-test-utils/src/wp-data-select.js +++ b/packages/e2e-test-utils/src/wp-data-select.js @@ -1,6 +1,17 @@ /** * Queries the WordPress data module. * + * `page.evaluate` - used in the function - returns `undefined` + * when it encounters a non-serializable value. + * Since we store many different values in the data module, + * you can end up with an `undefined` result. Before using + * this function, make sure the data you are querying + * doesn't contain non-serializable values, for example, + * functions, DOM element handles, etc. + * + * @see https://pptr.dev/#?product=Puppeteer&version=v9.0.0&show=api-pageevaluatepagefunction-args + * @see https://github.com/WordPress/gutenberg/pull/31199 + * * @param {string} store Store to query e.g: core/editor, core/blocks... * @param {string} selector Selector to exectute e.g: getBlocks. * @param {...Object} parameters Parameters to pass to the selector.