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

DaniSomoza / galactic-commander / 12422152220

19 Dec 2024 10:57PM UTC coverage: 52.396% (-13.2%) from 65.587%
12422152220

Pull #11

github

web-flow
Merge e0cd6a508 into 4f9f087f0
Pull Request #11: Build units

204 of 768 branches covered (26.56%)

Branch coverage included in aggregate %.

363 of 886 new or added lines in 84 files covered. (40.97%)

10 existing lines in 7 files now uncovered.

1414 of 2320 relevant lines covered (60.95%)

3.83 hits per line

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

34.62
/packages/frontend/src/components/defenses-label/DefensesLabel.tsx
1
import Paper from '@mui/material/Paper'
2
import Typography from '@mui/material/Typography'
3
import Tooltip from '@mui/material/Tooltip'
4
import Stack from '@mui/material/Stack'
5
import Skeleton from '@mui/material/Skeleton'
6
import FortIcon from '@mui/icons-material/Fort'
7

8
import isPlanetCoordinates from 'game-engine/src/engine/planets/isPlanetCoordinates'
9

10
import { usePlayer } from '../../store/PlayerContext'
11
import { useTranslations } from '../../store/TranslationContext'
12
import formatNumber from '../../utils/formatNumber'
13
import { PlayerType } from 'game-api-microservice/src/types/Player'
14
import { PlanetType } from 'game-api-microservice/src/types/Planet'
15

16
function DefensesLabel() {
17
  const { translate } = useTranslations()
1✔
18
  const { player, selectedPlanet } = usePlayer()
1✔
19

20
  const defensesInThisPlanet = getDefensesInThePlanet(player, selectedPlanet)
1✔
21
  return (
1✔
22
    <Paper variant="outlined">
23
      <Tooltip
24
        title={translate(
25
          'GAME_PLAYER_STATS_DEFENSES_TOOLTIP',
26
          formatNumber(defensesInThisPlanet, true)
27
        )}
28
        arrow
29
      >
30
        <Stack direction={'row'} padding={0.5} paddingLeft={1} alignItems={'center'}>
31
          <FortIcon fontSize="small" />
32

33
          <Typography
34
            variant="body1"
35
            fontSize={12}
36
            padding={0.4}
37
            overflow={'hidden'}
38
            textOverflow="ellipsis"
39
            textAlign="center"
40
          >
41
            {player ? (
1!
42
              formatNumber(defensesInThisPlanet, true)
43
            ) : (
44
              <Skeleton variant="text" width={32} />
45
            )}
46
          </Typography>
47
        </Stack>
48
      </Tooltip>
49
    </Paper>
50
  )
51
}
52

53
export default DefensesLabel
54

55
function getDefensesInThePlanet(player?: PlayerType, selectedPlanet?: PlanetType): number {
56
  if (!player || !selectedPlanet) {
1!
57
    return 0
1✔
58
  }
59

NEW
60
  const planetFleets = player.fleets.find(
×
NEW
61
    (fleet) => isPlanetCoordinates(fleet.planet, selectedPlanet.coordinates) && !fleet.travel
×
62
  )
63

NEW
64
  if (!planetFleets) {
×
NEW
65
    return 0
×
66
  }
67

NEW
68
  return planetFleets.units.reduce((defenses, { unit, amount }) => {
×
NEW
69
    if (unit.type === 'DEFENSE') {
×
NEW
70
      return defenses + amount
×
71
    }
72

NEW
73
    return defenses
×
74
  }, 0)
75
}
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