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

ngageoint / geopackage-js / 4078143969

pending completion
4078143969

push

github

Christopher Caldwell
bump version

3593 of 8015 branches covered (44.83%)

Branch coverage included in aggregate %.

15102 of 20471 relevant lines covered (73.77%)

1564.55 hits per line

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

77.27
/lib/user/custom/userCustomColumns.ts
1
import { UserCustomColumn } from './userCustomColumn';
2
import { UserColumns } from '../userColumns';
1✔
3

4
/**
5
 * UserCustomColumns
6
 */
7
export class UserCustomColumns extends UserColumns<UserCustomColumn> {
1✔
8
  /**
9
   * Required columns
10
   */
11
  requiredColumns: string[];
12

13
  /**
14
   * Constructor
15
   * @param tableName table name
16
   * @param columns columns
17
   */
18
  public constructor(tableName: string, columns: UserCustomColumn[]);
19

20
  /**
21
   * Constructor
22
   * @param tableName table name
23
   * @param columns columns
24
   * @param requiredColumns list of required columns
25
   */
26
  public constructor(tableName: string, columns: UserCustomColumn[], requiredColumns: string[]);
27

28
  /**
29
   * Constructor
30
   * @param tableName table name
31
   * @param columns columns
32
   * @param custom custom column specification
33
   */
34
  public constructor(tableName: string, columns: UserCustomColumn[], custom: boolean);
35

36
  /**
37
   * Constructor
38
   * @param tableName table name
39
   * @param columns columns
40
   * @param requiredColumns list of required columns
41
   * @param custom custom column specification
42
   */
43
  public constructor(tableName: string, columns: UserCustomColumn[], requiredColumns?: string[], custom?: boolean);
44

45
  /**
46
   * Copy Constructor
47
   * @param userCustomColumns user custom columns
48
   */
49
  public constructor(userCustomColumns: UserCustomColumns);
50

51
  /**
52
   * Constructor
53
   * @param args
54
   */
55
  public constructor(...args) {
17,724✔
56
    if (args.length === 1 && args[0] instanceof UserCustomColumns) {
3,351!
57
      const userCustomColumns = args[0];
×
58
      super(userCustomColumns);
×
59
      if (userCustomColumns.requiredColumns != null) {
×
60
        this.requiredColumns = userCustomColumns.requiredColumns.slice();
×
61
      }
62
    } else if (args.length === 2) {
3,351!
63
      const tableName = args[0];
×
64
      const columns = args[1];
×
65
      super(tableName, columns, false);
×
66
      this.requiredColumns = null;
×
67
      this.updateColumns();
×
68
    } else if (args.length === 3) {
3,351✔
69
      const tableName = args[0];
2,382✔
70
      const columns = args[1];
2,382✔
71
      const custom = args[2] != null && typeof args[2] === 'boolean' ? args[2] : false;
2,382✔
72
      const requiredColumns = args[2] != null && args[2].length != null ? args[2] : null;
2,382✔
73
      super(tableName, columns, custom);
2,382✔
74
      this.requiredColumns = requiredColumns;
2,382✔
75
      this.updateColumns();
2,382✔
76
    } else if (args.length === 4) {
969!
77
      const tableName = args[0];
969✔
78
      const columns = args[1];
969✔
79
      const requiredColumns = args[2];
969✔
80
      const custom = args[3];
969✔
81
      super(tableName, columns, custom);
969✔
82
      this.requiredColumns = requiredColumns;
969✔
83
      this.updateColumns();
969✔
84
    }
85
  }
86

87
  copy(): UserCustomColumns {
1✔
88
    return new UserCustomColumns(this.getTableName(), this.getColumns(), this.getRequiredColumns(), this.isCustom());
404✔
89
  }
90

91
  /**
92
   * Get the required columns
93
   * @return required columns
94
   */
95
  getRequiredColumns(): string[] {
1✔
96
    return this.requiredColumns;
967✔
97
  }
98

99
  /**
100
   * Set the required columns
101
   * @param requiredColumns required columns
102
   */
103
  setRequiredColumns(requiredColumns: string[] = []): void {
1!
104
    this.requiredColumns = requiredColumns.slice();
1✔
105
  }
106

107
  /**
108
   * @inheritDoc
109
   */
110
  updateColumns(): void {
3,374✔
111
    super.updateColumns();
3,374✔
112
    if (!this.isCustom() && this.requiredColumns !== null && this.requiredColumns.length !== 0) {
3,370✔
113
      const search = new Set<string>(this.requiredColumns);
153✔
114
      const found = {};
153✔
115
      // Find the required columns
116
      this.getColumns().forEach((column) => {
153✔
117
        const columnName = column.getName();
708✔
118
        const columnIndex = column.getIndex();
708✔
119
        if (search.has(columnName)) {
708✔
120
          const previousIndex = found[columnName];
335✔
121
          this.duplicateCheck(columnIndex, previousIndex, columnName);
335✔
122
          found[columnName] = columnIndex;
335✔
123
        }
124
      });
125

126
      // Verify the required columns were found
127
      search.forEach((requiredColumn) => {
153✔
128
        this.missingCheck(found[requiredColumn], requiredColumn);
335✔
129
      });
130
    }
131
  }
132
}
1✔
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