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

geo-engine / BioIS / 26289783214

22 May 2026 01:11PM UTC coverage: 78.61% (-1.9%) from 80.558%
26289783214

Pull #14

github

web-flow
Merge c3da70ae9 into 25711b0ec
Pull Request #14: feat: biodiversity impact

380 of 579 branches covered (65.63%)

Branch coverage included in aggregate %.

1191 of 1581 new or added lines in 23 files covered. (75.33%)

4 existing lines in 1 file now uncovered.

3082 of 3825 relevant lines covered (80.58%)

1.72 hits per line

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

9.09
/frontend/src/app/result/result.component.html
1
<div>
5✔
2
  <h1 class="mat-h1">Result {{ resultId() }}</h1>
5✔
3
  <div class="grid-container">
5✔
4
    @for (result of results(); track result.key) {
5✔
NEW
5
      <mat-card class="dashboard-card">
×
6
        <mat-card-header>
7
          <mat-card-title>
NEW
8
            {{ result.title }}
×
NEW
9
          </mat-card-title>
×
UNCOV
10
          <button
×
11
            matIconButton
12
            class="more-button"
UNCOV
13
            [matMenuTriggerFor]="menu"
×
14
            aria-label="Toggle menu"
15
          >
UNCOV
16
            <mat-icon>more_vert</mat-icon>
×
17
          </button>
UNCOV
18
          <mat-menu #menu="matMenu" xPosition="before">
×
NEW
19
            <button mat-menu-item (click)="download(result.key)">Download</button>
×
20
          </mat-menu>
21
        </mat-card-header>
NEW
22
        <mat-card-content>
×
NEW
23
          @switch (result.type) {
×
NEW
24
            @case (ResultType.Number) {
×
NEW
25
              <p>{{ asNumber(result.value) | number: '1.0-2' }}</p>
×
26
            }
27
            @case (ResultType.Ndvi) {
NEW
28
              <app-number-indicator
×
NEW
29
                [value]="asNumber(result.value)"
×
30
                [min]="-1"
31
                [max]="1"
32
                [colors]="ndviColorMap"
33
              ></app-number-indicator>
34
            }
35
            @case (ResultType.Json) {
NEW
36
              <app-long-text>
×
37
                <code>
NEW
38
                  <pre>{{ result.value | json }}</pre>
×
39
                </code>
40
              </app-long-text>
41
            }
42
            @case (ResultType.Array) {
NEW
43
              <mat-list>
×
NEW
44
                @for (item of asArray(result.value); track item) {
×
NEW
45
                  <mat-list-item>
×
NEW
46
                    <span>{{ item }}</span>
×
47
                  </mat-list-item>
48
                } @empty {
NEW
49
                  <em>empty</em>
×
50
                }
NEW
51
              </mat-list>
×
52
            }
53
            @case (ResultType.JsonTable) {
NEW
54
              <table mat-table [dataSource]="asJsonTableRows(result.value)">
×
NEW
55
                @for (column of columns(result.value); track column.key) {
×
NEW
56
                  <ng-container [matColumnDef]="column.key">
×
NEW
57
                    <th mat-header-cell *matHeaderCellDef>{{ column.name }}</th>
×
NEW
58
                    @switch (column.type) {
×
NEW
59
                      @case (ColumnType.String) {
×
NEW
60
                        <td
×
61
                          mat-cell
62
                          *matCellDef="let element"
NEW
63
                          [innerHTML]="element[column.key].replaceAll('\n', '<br>')"
×
64
                        ></td>
65
                      }
66
                      @case (ColumnType.Url) {
NEW
67
                        <td mat-cell *matCellDef="let element">
×
NEW
68
                          <a [href]="element[column.key]" target="_blank">{{
×
69
                            element[column.key]
NEW
70
                          }}</a>
×
71
                        </td>
72
                      }
73
                      @case (ColumnType.Number) {
NEW
74
                        <td mat-cell *matCellDef="let element">
×
NEW
75
                          {{ element[column.key] | number: '1.0-2' }}
×
NEW
76
                        </td>
×
77
                      }
78
                      @case (ColumnType.Boolean) {
NEW
79
                        <td mat-cell *matCellDef="let element">
×
NEW
80
                          {{ element[column.key] ? 'True' : 'False' }}
×
NEW
81
                        </td>
×
82
                      }
83
                      <!-- Prevent unhandled cases -->
84
                      @default never;
85
                    }
86
                  </ng-container>
87
                }
88

NEW
89
                <tr mat-header-row *matHeaderRowDef="columnKeys(result.value)"></tr>
×
NEW
90
                <tr mat-row *matRowDef="let row; columns: columnKeys(result.value)"></tr>
×
NEW
91
              </table>
×
92
            }
93
            @case (ResultType.String)
94
            @case (ResultType.Boolean)
95
            @default {
NEW
96
              <p>{{ result.value }}</p>
×
97
            }
98
          }
NEW
99
        </mat-card-content>
×
100
      </mat-card>
101
    }
102
  </div>
5✔
103
</div>
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