|
|
@@ -8,7 +8,7 @@ import { AreaEntity } from '@d8d/geo-areas';
|
|
|
import { Merchant } from '@d8d/merchant-module';
|
|
|
import { Supplier } from '@d8d/supplier-module';
|
|
|
import { File } from '@d8d/file-module';
|
|
|
-import { adminOrderRoutes } from '../../src/routes/admin/orders';
|
|
|
+import adminOrderRoutes from '../../src/routes/admin/orders';
|
|
|
import { Order } from '../../src/entities';
|
|
|
|
|
|
// 设置集成测试钩子
|
|
|
@@ -24,6 +24,10 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
let testDeliveryAddress: DeliveryAddress;
|
|
|
let testMerchant: Merchant;
|
|
|
let testSupplier: Supplier;
|
|
|
+ let testProvince: AreaEntity;
|
|
|
+ let testCity: AreaEntity;
|
|
|
+ let testDistrict: AreaEntity;
|
|
|
+ let testTown: AreaEntity;
|
|
|
|
|
|
beforeEach(async () => {
|
|
|
// 创建测试客户端
|
|
|
@@ -58,15 +62,50 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
roles: [{name:'admin'}]
|
|
|
});
|
|
|
|
|
|
+ // 创建测试地区数据
|
|
|
+ const areaRepository = dataSource.getRepository(AreaEntity);
|
|
|
+ testProvince = areaRepository.create({
|
|
|
+ name: '广东省',
|
|
|
+ level: 1,
|
|
|
+ code: '44',
|
|
|
+ state: 1
|
|
|
+ });
|
|
|
+ await areaRepository.save(testProvince);
|
|
|
+
|
|
|
+ testCity = areaRepository.create({
|
|
|
+ name: '深圳市',
|
|
|
+ level: 2,
|
|
|
+ code: '4403',
|
|
|
+ state: 1
|
|
|
+ });
|
|
|
+ await areaRepository.save(testCity);
|
|
|
+
|
|
|
+ testDistrict = areaRepository.create({
|
|
|
+ name: '南山区',
|
|
|
+ level: 3,
|
|
|
+ code: '440305',
|
|
|
+ state: 1
|
|
|
+ });
|
|
|
+ await areaRepository.save(testDistrict);
|
|
|
+
|
|
|
+ testTown = areaRepository.create({
|
|
|
+ name: '粤海街道',
|
|
|
+ level: 4,
|
|
|
+ code: '440305001',
|
|
|
+ state: 1
|
|
|
+ });
|
|
|
+ await areaRepository.save(testTown);
|
|
|
+
|
|
|
// 创建测试配送地址
|
|
|
const deliveryAddressRepository = dataSource.getRepository(DeliveryAddress);
|
|
|
testDeliveryAddress = deliveryAddressRepository.create({
|
|
|
userId: testUser.id,
|
|
|
name: '收货人姓名',
|
|
|
phone: '13800138000',
|
|
|
- province: '广东省',
|
|
|
- city: '深圳市',
|
|
|
- district: '南山区',
|
|
|
+ receiverProvince: testProvince.id,
|
|
|
+ receiverCity: testCity.id,
|
|
|
+ receiverDistrict: testDistrict.id,
|
|
|
+ receiverTown: testTown.id,
|
|
|
address: '测试地址',
|
|
|
isDefault: 1,
|
|
|
state: 1,
|
|
|
@@ -117,9 +156,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(userOrder1);
|
|
|
@@ -134,9 +177,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 1,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testAdmin.id
|
|
|
});
|
|
|
await orderRepository.save(userOrder2);
|
|
|
@@ -186,10 +233,10 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 0,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
- supplierId: testSupplier.id,
|
|
|
- createdBy: testUser.id // 管理员可以指定创建人
|
|
|
+ supplierId: testSupplier.id
|
|
|
+ // createdBy 由认证中间件自动设置
|
|
|
};
|
|
|
|
|
|
const response = await client.index.$post({
|
|
|
@@ -213,7 +260,7 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
expect(data.orderNo).toBe(createData.orderNo);
|
|
|
expect(parseFloat(data.amount)).toBe(createData.amount);
|
|
|
expect(data.userId).toBe(createData.userId); // 验证可以指定用户
|
|
|
- expect(data.createdBy).toBe(testUser.id); // 验证可以指定创建人
|
|
|
+ expect(data.createdBy).toBe(testAdmin.id); // 验证创建人自动设置为当前管理员用户
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -251,9 +298,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(testOrder);
|
|
|
@@ -305,9 +356,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(testOrder);
|
|
|
@@ -354,9 +409,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(testOrder);
|
|
|
@@ -390,9 +449,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0, // 未发货
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(pendingOrder);
|
|
|
@@ -407,9 +470,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 1, // 已发货
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(shippedOrder);
|
|
|
@@ -424,9 +491,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 2, // 收货成功
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(completedOrder);
|
|
|
@@ -476,9 +547,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 0, // 未支付
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(unpaidOrder);
|
|
|
@@ -493,9 +568,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 1, // 支付中
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(payingOrder);
|
|
|
@@ -510,9 +589,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2, // 支付成功
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(paidOrder);
|
|
|
@@ -562,9 +645,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testUser.id
|
|
|
});
|
|
|
await orderRepository.save(userOrder);
|
|
|
@@ -579,9 +666,13 @@ describe('管理员订单管理API集成测试', () => {
|
|
|
payType: 1,
|
|
|
payState: 2,
|
|
|
state: 0,
|
|
|
- deliveryAddressId: testDeliveryAddress.id,
|
|
|
+ addressId: testDeliveryAddress.id,
|
|
|
merchantId: testMerchant.id,
|
|
|
supplierId: testSupplier.id,
|
|
|
+ recevierProvince: testProvince.id,
|
|
|
+ recevierCity: testCity.id,
|
|
|
+ recevierDistrict: testDistrict.id,
|
|
|
+ recevierTown: testTown.id,
|
|
|
createdBy: testAdmin.id
|
|
|
});
|
|
|
await orderRepository.save(adminOrder);
|