test: adds integration test for shipping-option-requirements

This commit is contained in:
Sebastian Rindom
2021-06-08 17:21:42 +02:00
parent eb0a4afd79
commit 10113d0657
3 changed files with 98 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);
@@ -104,6 +105,79 @@ describe("/admin/draft-orders", () => {
expect(response.status).toEqual(200);
});
it("fails to create a draft order with option requirement", async () => {
const api = useApi();
const payload = {
email: "oli@test.dk",
shipping_address: "oli-shipping",
items: [
{
quantity: 1,
metadata: {},
unit_price: 1,
},
],
region_id: "test-region",
customer_id: "oli-test",
shipping_methods: [
{
option_id: "test-option-req",
},
],
};
const response = await api
.post("/admin/draft-orders", payload, {
headers: {
Authorization: "Bearer test_token",
},
})
.catch((err) => {
return err.response;
});
expect(response.status).toEqual(400);
});
it("creates a draft order with option requirement", async () => {
const api = useApi();
const payload = {
email: "oli@test.dk",
shipping_address: "oli-shipping",
items: [
{
variant_id: "test-variant",
quantity: 2,
metadata: {},
},
{
quantity: 1,
metadata: {},
unit_price: 10000,
},
],
region_id: "test-region",
customer_id: "oli-test",
shipping_methods: [
{
option_id: "test-option-req",
},
],
};
const response = await api
.post("/admin/draft-orders", payload, {
headers: {
Authorization: "Bearer test_token",
},
})
.catch((err) => {
console.log(err);
});
expect(response.status).toEqual(200);
});
it("creates a draft order with custom item", async () => {
const api = useApi();
@@ -322,6 +396,7 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);
@@ -431,6 +506,7 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);
@@ -496,6 +572,7 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);
@@ -612,6 +689,7 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);

View File

@@ -44,6 +44,7 @@ describe("/store/carts (draft-orders)", () => {
await manager.query(`DELETE FROM "product_variant"`);
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "shipping_option_requirement"`);
await manager.query(`DELETE FROM "shipping_option"`);
await manager.query(`UPDATE "discount" SET rule_id=NULL`);
await manager.query(`DELETE FROM "discount"`);

View File

@@ -3,6 +3,7 @@ const {
Customer,
MoneyAmount,
ShippingOption,
ShippingOptionRequirement,
Product,
ProductVariant,
Region,
@@ -166,6 +167,24 @@ module.exports = async (connection, data = {}) => {
data: {},
});
await manager.insert(ShippingOption, {
id: "test-option-req",
name: "test-option-req",
provider_id: "test-ful",
region_id: "test-region",
profile_id: defaultProfile.id,
price_type: "flat_rate",
amount: 1000,
data: {},
});
await manager.insert(ShippingOptionRequirement, {
id: "option-req",
shipping_option_id: "test-option-req",
type: "min_subtotal",
amount: 10,
});
const c = manager.create(Cart, {
id: "test-cart",
customer_id: "oli-test",