[ ] 1) Products Endpoints
GET /api/products/:product_id
given a malicious product
"before each" hook for "removes the attack content":
error: insert into "products" ("approved_by_admin", "brand_id", "category_id", "cmt_cut_country", "cmt_notes", "cmt_sew_country", "cost_in_home_currency", "created_at", "dry_id", "english_name", "feature_image_url", "featured", "id", "multiple_color_options", "product_url", "updated_at", "wash_id") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17) - duplicate key value violates unique constraint "products_pkey"
at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 2) Products Endpoints
GET /api/products/:product_id/fabrics
when there are fabrics associated with the product with id product_id
responds with 200 and all the fabrics:
ReferenceError: prodFab is not defined
at Context. (test/products-endpoints.spec.js:300:34)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 3) Products Endpoints
GET /api/products/:product_id/fabrics
given a malicious fabric
removes the attack content:
ReferenceError: prodMalFab is not defined
at Context. (test/products-endpoints.spec.js:321:34)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 4) Products Endpoints
GET /api/products/:product_id/factories
when there are factories associated with the product with id product_id
"before each" hook for "responds with 200 and all the factories":
error: insert into "product_cmts_to_factories" ("factory_id", "stage") values ($1, $2) - null value in column "product_id" of relation "product_cmts_to_factories" violates not-null constraint
at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 5) Products Endpoints
GET /api/products/:product_id/factories
given a malicious factory
removes the attack content:
at Context. (test/products-endpoints.spec.js:355:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15)
at Test._assertBody (node_modules/supertest/lib/test.js:193:16)
at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13
at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
at Test.assert (node_modules/supertest/lib/test.js:164:23)
at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
at Object.onceWrapper (node:events:633:28)
at Server.emit (node:events:519:28)
at emitCloseNT (node:net:2279:8)
at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 6) Products Endpoints
GET /api/products/:product_id/fibers
when there are fibers associated with the product with id product_id
"before each" hook for "responds with 200 and all the fibers":
error: insert into "fibers_to_products" ("fiber_or_material_id") values ($1) - null value in column "product_id" of relation "fibers_to_products" violates not-null constraint
at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 7) Products Endpoints
GET /api/products/:product_id/fibers
given a malicious fiber
"before each" hook for "removes the attack content":
error: insert into "fibers_to_products" ("fiber_or_material_id") values ($1) - null value in column "product_id" of relation "fibers_to_products" violates not-null constraint
at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 8) Products Endpoints
GET /api/products/:product_id/notions
when there are notions associated with the product with id product_id
responds with 200 and all the notions:
Error: expected undefined response body, got '[{"id":1,"notion_type_id":1,"notion_type":"button","brand_id":1,"manufacturer_country":1,"manufacturer_id":1,"manufacturer_notes":"Pink factory","material_type_id":1,"material_type":"Cotton","material_origin_id":1,"material_producer_id":1,"material_notes":"Notes","notion_approved_by_admin":true,"pair_approved_by_admin":true,"pair_created_at":"2023-03-08T00:14:18.263Z","pair_updated_at":"2023-03-08T00:14:18.263Z","certifications":[{"id":1,"english_name":"Organic","website":"www.organic.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"},{"id":2,"english_name":"Fair Trade","website":"www.fairtrade.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"},{"id":3,"english_name":"Green","website":"www.green.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"}]}]'
at Context. (test/products-endpoints.spec.js:449:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15)
at Test._assertBody (node_modules/supertest/lib/test.js:206:16)
at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13
at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
at Test.assert (node_modules/supertest/lib/test.js:164:23)
at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
at Object.onceWrapper (node:events:633:28)
at Server.emit (node:events:519:28)
at emitCloseNT (node:net:2279:8)
at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 9) Products Endpoints
GET /api/products/:product_id/notions
given a malicious notion
removes the attack content:
at Context. (test/products-endpoints.spec.js:475:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15)
at Test._assertBody (node_modules/supertest/lib/test.js:193:16)
at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13
at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
at Test.assert (node_modules/supertest/lib/test.js:164:23)
at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
at Object.onceWrapper (node:events:633:28)
at Server.emit (node:events:519:28)
at emitCloseNT (node:net:2279:8)
at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 10) Products Endpoints
GET /api/products/:product_id/sizes
when there are sizes associated with the product with id product_id
responds with 200 and all the sizes:
at Context. (test/products-endpoints.spec.js:491:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15)
at Test._assertBody (node_modules/supertest/lib/test.js:193:16)
at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13
at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
at Test.assert (node_modules/supertest/lib/test.js:164:23)
at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
at Object.onceWrapper (node:events:633:28)
at Server.emit (node:events:519:28)
at emitCloseNT (node:net:2279:8)
at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 11) Products Endpoints
POST /api/products
given a malicious product
removes the attack content from the response:
AssertionError: expected 500 to deeply equal 201
expected - actual
-500
+201
at Context. (test/products-endpoints.spec.js:774:48)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 12) Products Endpoints
POST /api/products/:product_id/colors
given a malicious color
removes the attack content from the response:
at Context. (test/products-endpoints.spec.js:1143:46)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 13) Products Endpoints
POST /api/products/:product_id/fabrics
creates a product-fabric set, responding with 201 and the new product-fabric set:
ReferenceError: prodFact is not defined
at Context. (test/products-endpoints.spec.js:1179:37)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 14) Products Endpoints
POST /api/products/:product_id/factories
creates a product-factory set, responding with 201 and the new product-factory set:
at Context. (test/products-endpoints.spec.js:1546:45)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 16) Products Endpoints
PATCH /api/products/:product_id
given the product with id product_id exists
responds with 204 when updating only a subset of fields:
[ ] 1) Products Endpoints GET /api/products/:product_id given a malicious product "before each" hook for "removes the attack content": error: insert into "products" ("approved_by_admin", "brand_id", "category_id", "cmt_cut_country", "cmt_notes", "cmt_sew_country", "cost_in_home_currency", "created_at", "dry_id", "english_name", "feature_image_url", "featured", "id", "multiple_color_options", "product_url", "updated_at", "wash_id") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17) - duplicate key value violates unique constraint "products_pkey" at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98) at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38) at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 3) Products Endpoints GET /api/products/:product_id/fabrics given a malicious fabric removes the attack content: ReferenceError: prodMalFab is not defined at Context. (test/products-endpoints.spec.js:321:34)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 4) Products Endpoints GET /api/products/:product_id/factories when there are factories associated with the product with id product_id "before each" hook for "responds with 200 and all the factories": error: insert into "product_cmts_to_factories" ("factory_id", "stage") values ($1, $2) - null value in column "product_id" of relation "product_cmts_to_factories" violates not-null constraint at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98) at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38) at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 5) Products Endpoints GET /api/products/:product_id/factories given a malicious factory removes the attack content:
Error: expected [ { id: 666, english_name: '<a href="www.evil.com">Evil</a>', country: 1, website: '<a href="www.evil.com">www.evil.com</a>', notes: '<a href="www.evil.com">Evil</a>', approved_by_admin: true, created_at: '2020-10-13T21:54:18.074Z', updated_at: '2020-10-13T21:54:18.074Z', stage: 'sew' } ] response body, got [ { id: 666, english_name: '<a href="www.evil.com">Evil</a>', country: 1, website: '<a href="www.evil.com">www.evil.com</a>', notes: '<a href="www.evil.com">Evil</a>', stage: 'sew', fact_approved_by_admin: true, pair_approved_by_admin: false, pair_created_at: '2024-07-30T00:16:02.743Z', pair_updated_at: '2024-07-30T00:16:02.743Z' } ]
expected - actual
[ {
"updated_at": "2020-10-13T21:54:18.074Z" "website": "<a href=\"www.evil.com\">www.evil.com</a>" } ]
at Context. (test/products-endpoints.spec.js:355:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15) at Test._assertBody (node_modules/supertest/lib/test.js:193:16) at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13 at Test._assertFunction (node_modules/supertest/lib/test.js:285:13) at Test.assert (node_modules/supertest/lib/test.js:164:23) at Server.localAssert (node_modules/supertest/lib/test.js:120:14) at Object.onceWrapper (node:events:633:28) at Server.emit (node:events:519:28) at emitCloseNT (node:net:2279:8) at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 6) Products Endpoints GET /api/products/:product_id/fibers when there are fibers associated with the product with id product_id "before each" hook for "responds with 200 and all the fibers": error: insert into "fibers_to_products" ("fiber_or_material_id") values ($1) - null value in column "product_id" of relation "fibers_to_products" violates not-null constraint at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98) at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38) at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 7) Products Endpoints GET /api/products/:product_id/fibers given a malicious fiber "before each" hook for "removes the attack content": error: insert into "fibers_to_products" ("fiber_or_material_id") values ($1) - null value in column "product_id" of relation "fibers_to_products" violates not-null constraint at Parser.parseErrorMessage (node_modules/pg-protocol/dist/parser.js:287:98) at Parser.handlePacket (node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (node_modules/pg-protocol/dist/parser.js:39:38) at Socket. (node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
[ ] 8) Products Endpoints GET /api/products/:product_id/notions when there are notions associated with the product with id product_id responds with 200 and all the notions: Error: expected undefined response body, got '[{"id":1,"notion_type_id":1,"notion_type":"button","brand_id":1,"manufacturer_country":1,"manufacturer_id":1,"manufacturer_notes":"Pink factory","material_type_id":1,"material_type":"Cotton","material_origin_id":1,"material_producer_id":1,"material_notes":"Notes","notion_approved_by_admin":true,"pair_approved_by_admin":true,"pair_created_at":"2023-03-08T00:14:18.263Z","pair_updated_at":"2023-03-08T00:14:18.263Z","certifications":[{"id":1,"english_name":"Organic","website":"www.organic.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"},{"id":2,"english_name":"Fair Trade","website":"www.fairtrade.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"},{"id":3,"english_name":"Green","website":"www.green.com","approved_by_admin":true,"created_at":"2020-09-13T07:30:51.564Z","updated_at":"2023-03-07T23:04:54.568Z"}]}]' at Context. (test/products-endpoints.spec.js:449:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15) at Test._assertBody (node_modules/supertest/lib/test.js:206:16) at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13 at Test._assertFunction (node_modules/supertest/lib/test.js:285:13) at Test.assert (node_modules/supertest/lib/test.js:164:23) at Server.localAssert (node_modules/supertest/lib/test.js:120:14) at Object.onceWrapper (node:events:633:28) at Server.emit (node:events:519:28) at emitCloseNT (node:net:2279:8) at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 9) Products Endpoints GET /api/products/:product_id/notions given a malicious notion removes the attack content:
Error: expected [ { id: 666, notion_type_id: 666, brand_id: 1, manufacturer_country: 1, manufacturer_id: 666, manufacturer_notes: '<a href="www.evil.com">Evil</a>', material_type_id: 666, material_origin_id: 1, material_producer_id: 666, material_notes: '<a>Notes</a>', approved_by_admin: true, created_at: '2020-09-13T07:30:51.564Z', updated_at: '2020-09-13T07:30:51.564Z', notion_type: '<a>button</a>', certifications: [ [Object] ] } ] response body, got [ { id: 666, notion_type_id: 666, notion_type: '<a>button</a>', brand_id: 1, manufacturer_country: 1, manufacturer_id: 666, manufacturer_notes: '<a href="www.evil.com">Evil</a>', material_type_id: 666, material_type: '<a>Bad fiber type</a>', material_origin_id: 1, material_producer_id: 666, material_notes: '<a>Notes</a>', notion_approved_by_admin: true, pair_approved_by_admin: false, pair_created_at: '2024-07-30T00:16:04.362Z', pair_updated_at: '2024-07-30T00:16:04.362Z', certifications: [ [Object] ] } ]
expected - actual
[ {
"approved_by_admin": true "brand_id": 1 "certifications": [ { "approved_by_admin": true
]
"updated_at": "2020-09-13T07:30:51.564Z" } ]
at Context. (test/products-endpoints.spec.js:475:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15) at Test._assertBody (node_modules/supertest/lib/test.js:193:16) at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13 at Test._assertFunction (node_modules/supertest/lib/test.js:285:13) at Test.assert (node_modules/supertest/lib/test.js:164:23) at Server.localAssert (node_modules/supertest/lib/test.js:120:14) at Object.onceWrapper (node:events:633:28) at Server.emit (node:events:519:28) at emitCloseNT (node:net:2279:8) at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 10) Products Endpoints GET /api/products/:product_id/sizes when there are sizes associated with the product with id product_id responds with 200 and all the sizes:
Error: expected [ { id: 1, country_system: 'International', size_text: 'M', size_category: 'alpha', size_class: 'standard', us_size: 'M' } ] response body, got [ { id: 1, country_system: 'International', size_text: 'M', size_category: 'alpha', size_class: 'standard', us_size: 'M', pair_approved_by_admin: true, pair_created_at: '2023-03-08T00:14:18.263Z', pair_updated_at: '2023-03-08T00:14:18.263Z' } ]
expected - actual
[ { "country_system": "International" "id": 1
"pair_updated_at": "2023-03-08T00:14:18.263Z" "size_category": "alpha" "size_class": "standard" "size_text": "M" "us_size": "M"
at Context. (test/products-endpoints.spec.js:491:22)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at error (node_modules/supertest/lib/test.js:335:15) at Test._assertBody (node_modules/supertest/lib/test.js:193:16) at /Users/Georgia/software_engineering_projects/veronaut-products-api/node_modules/supertest/lib/test.js:308:13 at Test._assertFunction (node_modules/supertest/lib/test.js:285:13) at Test.assert (node_modules/supertest/lib/test.js:164:23) at Server.localAssert (node_modules/supertest/lib/test.js:120:14) at Object.onceWrapper (node:events:633:28) at Server.emit (node:events:519:28) at emitCloseNT (node:net:2279:8) at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
[ ] 11) Products Endpoints POST /api/products given a malicious product removes the attack content from the response:
AssertionError: expected 500 to deeply equal 201
expected - actual
-500 +201
at Context. (test/products-endpoints.spec.js:774:48)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 12) Products Endpoints POST /api/products/:product_id/colors given a malicious color removes the attack content from the response:
AssertionError: expected { id: 1, product_id: 1, …(6) } to deeply equal { id: 1, …(6) }
expected - actual
{ "approved_by_admin": true "color_description_id": 1
"swatch_image_url": [undefined] "updated_at": "2024-07-30T00:16:09.732Z" }
at Context. (test/products-endpoints.spec.js:1143:46)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 13) Products Endpoints POST /api/products/:product_id/fabrics creates a product-fabric set, responding with 201 and the new product-fabric set: ReferenceError: prodFact is not defined at Context. (test/products-endpoints.spec.js:1179:37)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 14) Products Endpoints POST /api/products/:product_id/factories creates a product-factory set, responding with 201 and the new product-factory set:
AssertionError: expected { product_id: 1, factory_id: 1, …(4) } to deeply equal { factory_id: 1, stage: 'sew', …(3) }
expected - actual
{ "approved_by_admin": false "created_at": "2024-07-30T00:16:10.241Z" "factory_id": 1
"product_id": 1 "stage": "sew" "updated_at": "2024-07-30T00:16:10.241Z" }
at Context. (test/products-endpoints.spec.js:1243:42)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 15) Products Endpoints PATCH /api/products/:product_id given the product with id product_id exists responds with 204 and updates the product:
AssertionError: expected { …(6) } to deeply equal { …(6) }
expected - actual
"featured": true "id": 1 "multiple_color_options": true "product_url": "https://new-url.com"
"updated_at": "7/30/2024, 12:16:13 AM" "wash_id": 1 } }
at Context. (test/products-endpoints.spec.js:1546:45)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[ ] 16) Products Endpoints PATCH /api/products/:product_id given the product with id product_id exists responds with 204 when updating only a subset of fields:
AssertionError: expected { …(6) } to deeply equal { …(6) }
expected - actual
"featured": true "id": 1 "multiple_color_options": false "product_url": "https://silvaniaperu.com/silvania-dress"
"updated_at": "7/30/2024, 12:16:14 AM" "wash_id": 1 } }
at Context. (test/products-endpoints.spec.js:1592:45)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)