fix: bind overseas receiving to shared warehouse
This commit is contained in:
+13
@@ -4,8 +4,11 @@ import com.baiyue.lastleg.inventory.entity.InventoryBalance;
|
||||
import com.baiyue.lastleg.inventory.entity.InventoryLedger;
|
||||
import com.baiyue.lastleg.inventory.entity.InventoryOperation;
|
||||
import com.baiyue.lastleg.inventory.entity.InventoryPosition;
|
||||
import com.baiyue.lastleg.inventory.query.dto.InventoryQueryRequests;
|
||||
import com.baiyue.lastleg.inventory.query.mapper.InventoryQueryMapper;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -69,6 +72,16 @@ class InventorySchemaContractTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void positionQuerySqlReferencesOnlyFieldsExposedByThePositionQueryDto() throws NoSuchMethodException {
|
||||
Select select = InventoryQueryMapper.class.getMethod("positions", String.class, long.class,
|
||||
InventoryQueryRequests.PositionQuery.class).getAnnotation(Select.class);
|
||||
String sql = String.join(" ", select.value());
|
||||
assertFalse(sql.contains("q.skuCode"));
|
||||
assertFalse(sql.contains("q.warehouseLocationCode"));
|
||||
assertFalse(sql.contains("sku_code"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void incrementalMigrationIsAdditiveAndRerunnable() throws IOException {
|
||||
String migration = Files.readString(Path.of("..", "scripts", "db", "incremental.sql"), StandardCharsets.UTF_8)
|
||||
|
||||
+10
-4
@@ -22,19 +22,25 @@ class InventoryQueryControllerTest {
|
||||
|
||||
@Test
|
||||
void platformBalancePageQueriesAllCustomers() {
|
||||
controller.balances(user(0L, "PLATFORM"), query);
|
||||
controller.balances(user(0L, "PLATFORM"), null, query);
|
||||
verify(service).balances(eq(null), eq(query));
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformBalancePageUsesExplicitCustomerScope() {
|
||||
controller.balances(user(0L, "PLATFORM"), " 10001 ", query);
|
||||
verify(service).balances(eq("10001"), eq(query));
|
||||
}
|
||||
|
||||
@Test
|
||||
void merchantCannotUsePlatformInventoryController() {
|
||||
assertThrows(ResponseStatusException.class,
|
||||
() -> controller.summary(user(100L, "MERCHANT"), query));
|
||||
() -> controller.summary(user(100L, "MERCHANT"), null, query));
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformSummaryQueriesAllCustomers() {
|
||||
controller.summary(user(0L, "PLATFORM"), query);
|
||||
controller.summary(user(0L, "PLATFORM"), null, query);
|
||||
verify(service).dashboard(eq(null), eq(query));
|
||||
}
|
||||
|
||||
@@ -43,7 +49,7 @@ class InventoryQueryControllerTest {
|
||||
InventoryQueryRequests.PositionQuery positionQuery =
|
||||
new InventoryQueryRequests.PositionQuery(null, null, null);
|
||||
assertThrows(ResponseStatusException.class,
|
||||
() -> controller.positions(null, 1L, positionQuery));
|
||||
() -> controller.positions(null, 1L, null, positionQuery));
|
||||
}
|
||||
|
||||
private static AuthenticatedUser user(long customerId, String appCode) {
|
||||
|
||||
Reference in New Issue
Block a user