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

DaniSomoza / galactic-commander / 15029782185

14 May 2025 07:52PM UTC coverage: 47.664% (-4.4%) from 52.086%
15029782185

Pull #12

github

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

216 of 930 branches covered (23.23%)

Branch coverage included in aggregate %.

162 of 529 new or added lines in 56 files covered. (30.62%)

10 existing lines in 9 files now uncovered.

1569 of 2815 relevant lines covered (55.74%)

3.43 hits per line

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

52.63
/packages/game-api-microservice/src/controllers/fleetController.ts
1
import { FastifyReply, FastifyRequest } from 'fastify'
2
import StatusCodes from 'http-status-codes'
2✔
3
import Joi from 'joi'
2✔
4

5
// TODO: check package.json
6
import validateInputData from 'auth-microservice/dist/utils/validateInputData'
2✔
7
import handleErrorResponse from 'auth-microservice/dist/errors/handleErrorResponse'
2✔
8
import { checkSessionToken, getJWTFromAuthHeader } from 'auth-microservice/dist/lib/jwt'
2✔
9
import {
2✔
10
  GALAXIES,
11
  PLANETS_PER_SYSTEM,
12
  SECTORS_PER_GALAXIES,
13
  SYSTEM_PER_SECTORS
14
} from 'game-engine/dist/types/IPlanet'
15

16
import fleetService from '../services/fleetService'
2✔
17
import { ExplorePlanetData } from '../types/Fleets'
18

19
const explorePlanetFleetValidationSchema = Joi.object<ExplorePlanetData>({
2✔
20
  universeName: Joi.string().required(),
21
  toPlanetCoordinates: Joi.object({
22
    galaxy: Joi.number().integer().min(1).max(GALAXIES).required(),
23
    sector: Joi.number().integer().min(1).max(SECTORS_PER_GALAXIES).required(),
24
    system: Joi.number().integer().min(1).max(SYSTEM_PER_SECTORS).required(),
25
    planet: Joi.number().integer().min(1).max(PLANETS_PER_SYSTEM).required()
26
  }),
27

28
  fromPlanetCoordinates: Joi.object({
29
    galaxy: Joi.number().integer().min(1).max(GALAXIES).required(),
30
    sector: Joi.number().integer().min(1).max(SECTORS_PER_GALAXIES).required(),
31
    system: Joi.number().integer().min(1).max(SYSTEM_PER_SECTORS).required(),
32
    planet: Joi.number().integer().min(1).max(PLANETS_PER_SYSTEM).required()
33
  }),
34
  fleetUnits: Joi.array()
35
    .items(
36
      Joi.object({
37
        unitName: Joi.string().required(),
38
        amount: Joi.number().integer().min(1).required()
39
      })
40
    )
41
    .min(1)
42
    .required(),
43

44
  executeTaskAt: Joi.number().optional()
45
})
46

47
async function explorePlanet(request: FastifyRequest, response: FastifyReply) {
NEW
48
  try {
×
NEW
49
    await validateInputData(request.body, explorePlanetFleetValidationSchema)
×
50

NEW
51
    const jwtToken = getJWTFromAuthHeader(request.headers.authorization)
×
52

NEW
53
    const { username } = checkSessionToken(jwtToken)
×
54

55
    const { fromPlanetCoordinates, toPlanetCoordinates, universeName, fleetUnits } =
NEW
56
      request.body as ExplorePlanetData
×
57

NEW
58
    const newExplorePlanetTask = await fleetService.explorePlanet({
×
59
      username,
60
      universeName,
61
      fromPlanetCoordinates,
62
      toPlanetCoordinates,
63
      fleetUnits
64
    })
65

NEW
66
    response.code(StatusCodes.CREATED).send(newExplorePlanetTask)
×
67
  } catch (error) {
NEW
68
    const { code, body } = handleErrorResponse(error)
×
69

NEW
70
    return response.code(code).send(body)
×
71
  }
72
}
73

74
const fleetController = {
2✔
75
  explorePlanet
76
}
77

78
export default fleetController
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

© 2026 Coveralls, Inc