Merge branch 'integrate'

This commit is contained in:
Yanick Champoux 2023-04-13 17:59:22 -04:00
commit b9fbcf8c30
8 changed files with 74 additions and 51 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ package-lock.json
node_modules/ node_modules/
dist/yarn-error.log dist/yarn-error.log
.task/ .task/
.histoire/dist

View File

@ -6,6 +6,34 @@ vars:
GREETING: Hello, World! GREETING: Hello, World!
tasks: tasks:
test:
cmds:
- vitest run src
test:dev:
cmds:
- vitest src
check:
deps:
- histoire:build
cmds:
- { task: test }
histoire:build:
sources:
- src/lib/components/**
generates:
- .histoire/screenshots/**
cmds:
- histoire build
integrate:
deps: [check]
cmds:
- git is-clean
- git checkout main
- git weld -
release: release:
cmds: cmds:
- standard-version -a - standard-version -a

View File

@ -6,5 +6,5 @@ test("basic, initial store", () => {
const state = store.getState(); const state = store.getState();
expect(state).toHaveProperty("propulsion.drive.reqs.mass", 0); expect(state).toHaveProperty("propulsion.drive.reqs.mass", 0);
expect(state).toHaveProperty("structure.cargo.space", 0); // expect(state).toHaveProperty("structure.cargo.space", 0);
}); });

View File

@ -7,7 +7,7 @@ import { reqs, Reqs } from "../reqs.js";
const ftl = createSlice({ const ftl = createSlice({
name: "ftl", name: "ftl",
initialState, initialState: {},
reducers: { reducers: {
setFtl: (state, { payload }: PayloadAction<FtlType>) => { setFtl: (state, { payload }: PayloadAction<FtlType>) => {
state.type = payload; state.type = payload;

View File

@ -1 +0,0 @@
import

View File

@ -1,20 +1,12 @@
import { combineReducers } from "redux"; import { combineReducers } from "redux";
import * as R from "remeda"; import * as R from "remeda";
import * as hull from "./hull.js";
import * as screens from "./screen.js"; import * as screens from "./screen.js";
import * as cargo from "./cargo.js";
import * as armor from "./armor.js";
import * as streamlining from "./streamlining.js";
export const reducer = combineReducers( export const reducer = combineReducers(
R.mapValues( R.mapValues(
{ {
hull,
screens, screens,
cargo,
armor,
streamlining,
}, },
R.prop("reducer") R.prop("reducer")
) )

View File

@ -22,6 +22,5 @@ const adfc = createSlice({
export const reducer = combineReducers({ export const reducer = combineReducers({
adfc: adfc.reducer, adfc: adfc.reducer,
firecons: firecons.reducer,
weapons: weapons.reducer, weapons: weapons.reducer,
}); });

View File

@ -2,56 +2,60 @@ import { test, expect } from "vitest";
import ship from "./ship"; import ship from "./ship";
test("kicking the tires", () => { test("kicking the tires", () => {
const store = ship.createStore(); const store = ship.createStore();
store.dispatch.setFtlType("standard"); store.dispatch.setFtlType("standard");
expect(store.getState().propulsion.ftl.reqs.mass).toEqual(1); expect(store.getState().propulsion.ftl.reqs.mass).toEqual(1);
expect(store.getState().identification.reqs.usedMass).toEqual(1); expect(store.getState().identification.reqs.usedMass).toEqual(1);
store.dispatch.setDrive({ rating: 3, advanced: true }); store.dispatch.setDrive({ rating: 3, advanced: true });
expect(store.getState().propulsion.drive.reqs).toEqual({ mass: 2, cost: 6 }); expect(store.getState().propulsion.drive.reqs).toEqual({ mass: 2, cost: 6 });
store.dispatch.setNbrCarrierBays(1); store.dispatch.setNbrCarrierBays(1);
expect(store.getState().carrier.nbrBays).toEqual(1); expect(store.getState().carrier.nbrBays).toEqual(1);
store.dispatch.setNbrCarrierBays(2); store.dispatch.setNbrCarrierBays(2);
expect(store.getState().carrier.nbrBays).toEqual(2); expect(store.getState().carrier.nbrBays).toEqual(2);
store.dispatch.setSquadronType(2, "fast"); store.dispatch.setSquadronType(2, "fast");
expect(store.getState().carrier.squadrons[1]).toHaveProperty("type", "fast"); expect(store.getState().carrier.squadrons[1]).toHaveProperty("type", "fast");
expect(store.getState.isCarrier()).toBe(true); expect(store.getState.isCarrier()).toBe(true);
store.dispatch.setStreamlining("partial"); store.dispatch.setStreamlining("partial");
expect(store.getState.getStreamlining()).toBe("partial"); expect(store.getState.getStreamlining()).toBe("partial");
expect(store.selectors.getStreamlining(store.getState())).toBe("partial"); expect(store.selectors.getStreamlining(store.getState())).toBe("partial");
store.dispatch.setCargo(3); store.dispatch.setCargo(3);
expect(store.getState().structure.cargo).toEqual({ expect(store.getState().structure.cargo).toEqual({
space: 3, space: 3,
reqs: { reqs: {
mass: 3, mass: 3,
cost: 0, cost: 0,
}, },
}); });
store.dispatch.setNbrArmorLayers(1); store.dispatch.setNbrArmorLayers(1);
store.dispatch.setArmorRating(1, 3); store.dispatch.setArmorRating(1, 3);
expect(store.getState().structure.armor).toEqual({ expect(store.getState().structure.armor).toEqual({
layers: [3], layers: [3],
reqs: { reqs: {
cost: 6, cost: 6,
mass: 6, mass: 6,
}, },
}); });
store.dispatch.addWeapon("beam"); store.dispatch.addWeapon("beam");
expect(store.getState().weaponry.weapons[0]).toEqual({ expect(store.getState().weaponry.weapons[0]).toEqual({
id: 1, id: 1,
reqs: { cost: 3, mass: 1 }, reqs: { cost: 3, mass: 1 },
specs: { arcs: ["F"], type: "beam", weaponClass: 1 }, specs: {
}); arcs: ["FS", "F", "FP", "AP", "A", "AS"],
type: "beam",
weaponClass: 1,
},
});
}); });