Public Access
feat(rewards): add 14 new shop items with twin backgrounds
Each page background gets a matching banner background. Tests verify pairing, price constraints, and code length limits
This commit is contained in:
1 parent
8eab98df74
commit
74cc8297ce
3 files changed
+48
-1
No files matched your search
@@ -31,6 +31,13 @@ public enum ShopItem {
|
||||
BG_GRID(LookSlot.PAGE_BACKGROUND, 450),
|
||||
BG_WAVES(LookSlot.PAGE_BACKGROUND, 400),
|
||||
BG_BOKEH(LookSlot.PAGE_BACKGROUND, 400),
|
||||
BG_SYNTHWAVE(LookSlot.PAGE_BACKGROUND, 450),
|
||||
BG_FIREFLIES(LookSlot.PAGE_BACKGROUND, 400),
|
||||
BG_SNOW(LookSlot.PAGE_BACKGROUND, 400),
|
||||
BG_SAKURA(LookSlot.PAGE_BACKGROUND, 400),
|
||||
BG_NEBULA(LookSlot.PAGE_BACKGROUND, 450),
|
||||
BG_MATRIX(LookSlot.PAGE_BACKGROUND, 500),
|
||||
BG_CONSTELLATION(LookSlot.PAGE_BACKGROUND, 500),
|
||||
BN_TRIANGLES(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_STARFIELD(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_PIXELS(LookSlot.BANNER_BACKGROUND, 300),
|
||||
@@ -39,6 +46,13 @@ public enum ShopItem {
|
||||
BN_GRID(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_WAVES(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_BOKEH(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_SYNTHWAVE(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_FIREFLIES(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_SNOW(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_SAKURA(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_NEBULA(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_MATRIX(LookSlot.BANNER_BACKGROUND, 300),
|
||||
BN_CONSTELLATION(LookSlot.BANNER_BACKGROUND, 300),
|
||||
SKIN_PASTEL(LookSlot.SKIN, 600),
|
||||
SKIN_RETRO_CRT(LookSlot.SKIN, 700),
|
||||
SKIN_CYBERPUNK(LookSlot.SKIN, 800),
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package core_service.modules.rewards.domain;
|
||||
|
||||
import core_service.shared.test.AbstractUnitTest;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class ShopItemTest extends AbstractUnitTest {
|
||||
|
||||
@Test
|
||||
void everyPageBackgroundHasABannerTwin() {
|
||||
for (ShopItem item : ShopItem.values()) {
|
||||
if (!item.name().startsWith("BG_")) continue;
|
||||
ShopItem twin = ShopItem.valueOf("BN_" + item.name().substring(3));
|
||||
assertThat(item.slot()).isEqualTo(LookSlot.PAGE_BACKGROUND);
|
||||
assertThat(twin.slot()).isEqualTo(LookSlot.BANNER_BACKGROUND);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void buyableBannerBackgroundsCost300() {
|
||||
assertThat(Arrays.stream(ShopItem.values())
|
||||
.filter(item -> item.name().startsWith("BN_") && !item.unlockOnly())
|
||||
.map(ShopItem::price)).containsOnly(300);
|
||||
}
|
||||
|
||||
@Test
|
||||
void codesFitTheColumn() {
|
||||
assertThat(Arrays.stream(ShopItem.values()).map(Enum::name)).allMatch(name -> name.length() <= 32);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user