From 45b344fbe1a570620c4e47cf959bdb605fffddef Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Thu, 4 Nov 2021 15:32:48 +0100 Subject: [PATCH] fix: add product count to storefront (#719) --- .../api/__tests__/admin/region.js | 2 +- .../api/__tests__/store/collections.js | 2 +- integration-tests/api/package.json | 6 +- integration-tests/api/yarn.lock | 70 +++++++++---------- .../store/products/__tests__/list-products.js | 8 +-- .../routes/store/products/list-products.js | 7 +- 6 files changed, 49 insertions(+), 46 deletions(-) diff --git a/integration-tests/api/__tests__/admin/region.js b/integration-tests/api/__tests__/admin/region.js index bdb7e5b080..0a255d428e 100644 --- a/integration-tests/api/__tests__/admin/region.js +++ b/integration-tests/api/__tests__/admin/region.js @@ -15,7 +15,7 @@ describe("/admin/discounts", () => { beforeAll(async () => { const cwd = path.resolve(path.join(__dirname, "..", "..")) dbConnection = await initDb({ cwd }) - medusaProcess = await setupServer({ cwd, verbose: true }) + medusaProcess = await setupServer({ cwd }) }) afterAll(async () => { diff --git a/integration-tests/api/__tests__/store/collections.js b/integration-tests/api/__tests__/store/collections.js index bebd844c58..7ba6d52168 100644 --- a/integration-tests/api/__tests__/store/collections.js +++ b/integration-tests/api/__tests__/store/collections.js @@ -14,7 +14,7 @@ describe("/store/collections", () => { beforeAll(async () => { const cwd = path.resolve(path.join(__dirname, "..", "..")) dbConnection = await initDb({ cwd }) - medusaProcess = await setupServer({ cwd, verbose: true }) + medusaProcess = await setupServer({ cwd }) }) afterAll(async () => { diff --git a/integration-tests/api/package.json b/integration-tests/api/package.json index 4f98824455..32f5102a9a 100644 --- a/integration-tests/api/package.json +++ b/integration-tests/api/package.json @@ -8,15 +8,15 @@ "build": "babel src -d dist --extensions \".ts,.js\"" }, "dependencies": { - "@medusajs/medusa": "1.1.46-dev-1635944259436", - "medusa-interfaces": "1.1.27-dev-1635944259436", + "@medusajs/medusa": "1.1.51-dev-1636035082111", + "medusa-interfaces": "1.1.27-dev-1636035082111", "typeorm": "^0.2.31" }, "devDependencies": { "@babel/cli": "^7.12.10", "@babel/core": "^7.12.10", "@babel/node": "^7.12.10", - "babel-preset-medusa-package": "1.1.17-dev-1635944259436", + "babel-preset-medusa-package": "1.1.17-dev-1636035082111", "jest": "^26.6.3" } } diff --git a/integration-tests/api/yarn.lock b/integration-tests/api/yarn.lock index 25e92836dd..6b7509315b 100644 --- a/integration-tests/api/yarn.lock +++ b/integration-tests/api/yarn.lock @@ -1223,10 +1223,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@medusajs/medusa-cli@1.1.22-dev-1635944259436": - version "1.1.22-dev-1635944259436" - resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.22-dev-1635944259436.tgz#37c2a629d839646f3437e021e30c87e6ea288d62" - integrity sha512-YqP0XY1hXCprPOsnRZ8BRGs/maevYNrCHPzjSAu8PwI8A9p2/W19L1CQbSSUDI9JqJz5iyDZeioEuhNDrCnshQ== +"@medusajs/medusa-cli@1.1.22-dev-1636035082111": + version "1.1.22-dev-1636035082111" + resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.22-dev-1636035082111.tgz#cc3b01e4cb29d0490d02424969c1f17e9b1d70d7" + integrity sha512-se2/umiJIf4n0k6mPaowPyVT/ZV42m/73GVecu/Xl/f+OfDmeUxaw+0sXHkEN9zkPbIjQVBqn3lrLnLAf0YXMg== dependencies: "@babel/polyfill" "^7.8.7" "@babel/runtime" "^7.9.6" @@ -1244,8 +1244,8 @@ is-valid-path "^0.1.1" joi-objectid "^3.0.1" meant "^1.0.1" - medusa-core-utils "1.1.26-dev-1635944259436" - medusa-telemetry "0.0.9-dev-1635944259436" + medusa-core-utils "1.1.26-dev-1636035082111" + medusa-telemetry "0.0.9-dev-1636035082111" netrc-parser "^3.1.6" open "^8.0.6" ora "^5.4.1" @@ -1259,13 +1259,13 @@ winston "^3.3.3" yargs "^15.3.1" -"@medusajs/medusa@1.1.46-dev-1635944259436": - version "1.1.46-dev-1635944259436" - resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.46-dev-1635944259436.tgz#0acd01bb6f4a643cab75ec8a38422885ada5a24f" - integrity sha512-hM8/UP0TJxz1Qhoc90GmaGdGi/DBGvdh8E3EINl3e6CncwPcS4hC4Jy8d/Dl1wgwIht+q3/v3JNdc4q6ALxGsw== +"@medusajs/medusa@1.1.51-dev-1636035082111": + version "1.1.51-dev-1636035082111" + resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.51-dev-1636035082111.tgz#07cc9c130946e4d2f6cbd3794f309b4531a2d531" + integrity sha512-rKPIEgM9UhCGtW7zGnD76YdE5mdnDKnZDDhfIK86NysTELrBDwgiSkMbtGJEjPyRKsGw2GrWHzQl8Jjh6++PFQ== dependencies: "@hapi/joi" "^16.1.8" - "@medusajs/medusa-cli" "1.1.22-dev-1635944259436" + "@medusajs/medusa-cli" "1.1.22-dev-1636035082111" "@types/lodash" "^4.14.168" awilix "^4.2.3" body-parser "^1.19.0" @@ -1287,8 +1287,8 @@ joi "^17.3.0" joi-objectid "^3.0.1" jsonwebtoken "^8.5.1" - medusa-core-utils "1.1.26-dev-1635944259436" - medusa-test-utils "1.1.29-dev-1635944259436" + medusa-core-utils "1.1.26-dev-1636035082111" + medusa-test-utils "1.1.29-dev-1636035082111" morgan "^1.9.1" multer "^1.4.2" passport "^0.4.0" @@ -1911,10 +1911,10 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" -babel-preset-medusa-package@1.1.17-dev-1635944259436: - version "1.1.17-dev-1635944259436" - resolved "http://localhost:4873/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.17-dev-1635944259436.tgz#0baa03fb4ae54ed3da805d13bd159271d84e06a6" - integrity sha512-zF8VNwk+ZVZJS1jpO0Zp93attDAOdsGEQmMLjko/fkEU3CgdPXW6GAB589m6Heq7EU9ZbCeP/IP7LnrBHuPBKw== +babel-preset-medusa-package@1.1.17-dev-1636035082111: + version "1.1.17-dev-1636035082111" + resolved "http://localhost:4873/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.17-dev-1636035082111.tgz#81fee3e5eedc5b2cad5e1a681008b78c84820b8c" + integrity sha512-42IWYf73jr8foy7hVJ38qxXltegRuxxTCh722iKSiHB+8k7rXOUZOaTrPpwX/xpFM4AtfrjyuyWnf7OTpCclpw== dependencies: "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-decorators" "^7.12.1" @@ -5089,25 +5089,25 @@ media-typer@0.3.0: resolved "http://localhost:4873/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -medusa-core-utils@1.1.26-dev-1635944259436: - version "1.1.26-dev-1635944259436" - resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.26-dev-1635944259436.tgz#34a2bc6715a64d2aeaa09461f776651ab9a80349" - integrity sha512-xflDfs2HCNo7pPxyka9IWgOO7LAyFBoWYKWTZNBoAjiSDKBCpnsOPVMxK+1R5gBSf3PNzUl7Uca3VVCKGFuIPQ== +medusa-core-utils@1.1.26-dev-1636035082111: + version "1.1.26-dev-1636035082111" + resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.26-dev-1636035082111.tgz#873d54b1fbb07f70ff81a8cc9fd9fdf063745a52" + integrity sha512-3Nzyu/9Ah+IZVUFjFDyThqTe3CN19zopfym4r4xI4NcJ52fj+9LKRo5IPFQ6fBGQl6BUOnkDm8pbq2+H7qAa+w== dependencies: joi "^17.3.0" joi-objectid "^3.0.1" -medusa-interfaces@1.1.27-dev-1635944259436: - version "1.1.27-dev-1635944259436" - resolved "http://localhost:4873/medusa-interfaces/-/medusa-interfaces-1.1.27-dev-1635944259436.tgz#f0354011a82bc33fd2c7d62a0e86a160ae62d9cb" - integrity sha512-YrwcjmFYFax5l+V4qNnx2VS2JN4ujPzke/TxKTUE7XLGVLcdBAjh0KbHBT490ozjVAa7ttLaPiM0ZHCIje+2vw== +medusa-interfaces@1.1.27-dev-1636035082111: + version "1.1.27-dev-1636035082111" + resolved "http://localhost:4873/medusa-interfaces/-/medusa-interfaces-1.1.27-dev-1636035082111.tgz#051fcc30aeb82fcc6b39c70f91156b523254f8a2" + integrity sha512-ZPYl6Ld9BCOIiJEJhXzlnuR219tqK/p6n98yWzG46vu4WU5E6K8vr6xmcfdsus3SdSYLoTMElW7yPyWS33MaQg== dependencies: - medusa-core-utils "1.1.26-dev-1635944259436" + medusa-core-utils "1.1.26-dev-1636035082111" -medusa-telemetry@0.0.9-dev-1635944259436: - version "0.0.9-dev-1635944259436" - resolved "http://localhost:4873/medusa-telemetry/-/medusa-telemetry-0.0.9-dev-1635944259436.tgz#5b988da3745e39c9765aab3222bcfbe8e61c555b" - integrity sha512-S1csCqHJ5rhuY/IW+g2P6lnFGW4tmlf51/QovmwyiLuDg3x9AUoEdPow6ceWpoFylfo2rXmhzX4ByfHXd2qs9Q== +medusa-telemetry@0.0.9-dev-1636035082111: + version "0.0.9-dev-1636035082111" + resolved "http://localhost:4873/medusa-telemetry/-/medusa-telemetry-0.0.9-dev-1636035082111.tgz#bf416dfb8805ce43113b3e4652a5b64416bdf2bf" + integrity sha512-o8slI2PkBmKFKUgHJJfhBiHDfRNshEAIV5v87dLLWIv3xU2jNMJB8w4/OeHdf985jnjwoS1fcQ0EtqFwD3gUvQ== dependencies: axios "^0.21.1" axios-retry "^3.1.9" @@ -5119,13 +5119,13 @@ medusa-telemetry@0.0.9-dev-1635944259436: remove-trailing-slash "^0.1.1" uuid "^8.3.2" -medusa-test-utils@1.1.29-dev-1635944259436: - version "1.1.29-dev-1635944259436" - resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.29-dev-1635944259436.tgz#d341b2a1fd30a199905ad8907a1a62479f4c1f2d" - integrity sha512-1q/FAYkidnbUqTUkx8oMZVUQ3UIMVo8ul9zuU5NfE3MnldT/Yj4O8B2/UhyuHu5V7k97TC62buKbAbqQlw6Q4w== +medusa-test-utils@1.1.29-dev-1636035082111: + version "1.1.29-dev-1636035082111" + resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.29-dev-1636035082111.tgz#0af59b052e8868a73bab534da16b17ace1397f78" + integrity sha512-LfLPPSADEAZWapd1dYfmzbs99HDtWUGZutCl5cCzVQ3G3Xx5IoJDvmRFMxfaAdfhvF2WWCaJK3P37CNO8fHGww== dependencies: "@babel/plugin-transform-classes" "^7.9.5" - medusa-core-utils "1.1.26-dev-1635944259436" + medusa-core-utils "1.1.26-dev-1636035082111" randomatic "^3.1.1" merge-descriptors@1.0.1: diff --git a/packages/medusa/src/api/routes/store/products/__tests__/list-products.js b/packages/medusa/src/api/routes/store/products/__tests__/list-products.js index 8e044bd193..cd859fec6b 100644 --- a/packages/medusa/src/api/routes/store/products/__tests__/list-products.js +++ b/packages/medusa/src/api/routes/store/products/__tests__/list-products.js @@ -16,8 +16,8 @@ describe("GET /store/products", () => { }) it("calls get product from productSerice", () => { - expect(ProductServiceMock.list).toHaveBeenCalledTimes(1) - expect(ProductServiceMock.list).toHaveBeenCalledWith( + expect(ProductServiceMock.listAndCount).toHaveBeenCalledTimes(1) + expect(ProductServiceMock.listAndCount).toHaveBeenCalledWith( { status: ["published"] }, { relations: defaultRelations, skip: 0, take: 100 } ) @@ -41,8 +41,8 @@ describe("GET /store/products", () => { }) it("calls list from productSerice", () => { - expect(ProductServiceMock.list).toHaveBeenCalledTimes(1) - expect(ProductServiceMock.list).toHaveBeenCalledWith( + expect(ProductServiceMock.listAndCount).toHaveBeenCalledTimes(1) + expect(ProductServiceMock.listAndCount).toHaveBeenCalledWith( { is_giftcard: true, status: ["published"] }, { relations: defaultRelations, skip: 0, take: 100 } ) diff --git a/packages/medusa/src/api/routes/store/products/list-products.js b/packages/medusa/src/api/routes/store/products/list-products.js index 2c3e364385..0ad66b8503 100644 --- a/packages/medusa/src/api/routes/store/products/list-products.js +++ b/packages/medusa/src/api/routes/store/products/list-products.js @@ -48,7 +48,10 @@ export default async (req, res) => { take: limit, } - const products = await productService.list(selector, listConfig) + const [products, count] = await productService.listAndCount( + selector, + listConfig + ) - res.json({ products, count: products.length, offset, limit }) + res.json({ products, count, offset, limit }) }