• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DaniSomoza / galactic-commander / 12728621970

11 Jan 2025 11:55PM UTC coverage: 47.963% (-4.1%) from 52.086%
12728621970

Pull #12

github

web-flow
Merge e784abf9e into a8e301a23
Pull Request #12: [fleets] Explore planets

214 of 913 branches covered (23.44%)

Branch coverage included in aggregate %.

154 of 505 new or added lines in 55 files covered. (30.5%)

10 existing lines in 9 files now uncovered.

1564 of 2794 relevant lines covered (55.98%)

3.46 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

26.32
/packages/game-api-microservice/src/services/fleetService.ts
1
import createStartFleetTask from 'game-engine/dist/engine/tasks/utils/createStartFleetTask'
2✔
2
import universeRepository from 'game-engine/dist/repositories/universeRepository'
2✔
3
import playerRepository from 'game-engine/dist/repositories/playerRepository'
2✔
4
import planetRepository from 'game-engine/dist/repositories/planetRepository'
2✔
5
import unitRepository from 'game-engine/dist/repositories/unitRepository'
2✔
6
import taskRepository from 'game-engine/dist/repositories/taskRepository'
2✔
7
import { FleetTypes } from 'game-engine/dist/types/IFleet'
8
import NotFoundError from 'auth-microservice/dist/errors/NotFoundError'
2✔
9

10
import { PlanetCoordinatesType } from '../types/Planet'
11
import cleanTaskFields from '../utils/cleanTaskFields'
2✔
12

13
type explorePlanetServiceData = {
14
  username: string
15
  fleetUnits: { unitName: string; amount: number }[]
16
  universeName: string
17
  fromPlanetCoordinates: PlanetCoordinatesType
18
  toPlanetCoordinates: PlanetCoordinatesType
19
  executeTaskAt?: number
20
}
21

22
async function explorePlanet({
23
  username,
24
  fleetUnits,
25
  universeName,
26
  fromPlanetCoordinates,
27
  toPlanetCoordinates,
28
  executeTaskAt
29
}: explorePlanetServiceData) {
NEW
30
  const universe = await universeRepository.findUniverseByName(universeName)
×
31

NEW
32
  if (!universe) {
×
NEW
33
    throw new NotFoundError('invalid universe', { universeName })
×
34
  }
35

NEW
36
  const universeId = universe._id.toString()
×
37

NEW
38
  const player = await playerRepository.findPlayerByUsername(username, universeId)
×
39

NEW
40
  if (!player) {
×
NEW
41
    throw new NotFoundError('invalid player', { username, universeName })
×
42
  }
43

NEW
44
  const fromPlanet = await planetRepository.findPlanetByCoordinates(fromPlanetCoordinates)
×
45

NEW
46
  if (!fromPlanet) {
×
NEW
47
    throw new NotFoundError('invalid from planet', {
×
48
      username,
49
      fromPlanetCoordinates
50
    })
51
  }
52

NEW
53
  const toPlanet = await planetRepository.findPlanetByCoordinates(toPlanetCoordinates)
×
54

NEW
55
  if (!toPlanet) {
×
NEW
56
    throw new NotFoundError('invalid to planet', {
×
57
      username,
58
      toPlanetCoordinates
59
    })
60
  }
61

NEW
62
  const units = await unitRepository.findUnits()
×
63

NEW
64
  const fleetUnitsWithIds = fleetUnits.map(({ unitName, amount }) => {
×
NEW
65
    const unit = units.find((unit) => unit.name === unitName)
×
66

NEW
67
    if (!unit) {
×
NEW
68
      throw new NotFoundError('invalid unit', { unitName })
×
69
    }
70

NEW
71
    return {
×
72
      unit,
73
      amount
74
    }
75
  })
76

NEW
77
  const fleetData = {
×
78
    playerId: player._id.toString(),
79
    fromPlanetId: fromPlanet._id.toString(),
80
    toPlanetId: toPlanet._id.toString(),
81
    units: fleetUnitsWithIds,
82
    resources: 0,
83
    fleetType: 'EXPLORE_FLEET_TYPE' as FleetTypes
84
  }
85

NEW
86
  const startFleeTask = createStartFleetTask(universeId, fleetData, executeTaskAt)
×
87

NEW
88
  const newTask = await taskRepository.createStartFleetTask(startFleeTask)
×
89

NEW
90
  return { task: cleanTaskFields(newTask) }
×
91
}
92

93
const fleetService = {
2✔
94
  explorePlanet
95
}
96

97
export default fleetService
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc