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

pmcelhaney / counterfact / 9307669503

30 May 2024 06:49PM UTC coverage: 87.241% (-0.8%) from 87.991%
9307669503

push

github

web-flow
Merge pull request #919 from pmcelhaney/types-directory

directory structure change

984 of 1094 branches covered (89.95%)

Branch coverage included in aggregate %.

18 of 56 new or added lines in 9 files covered. (32.14%)

2 existing lines in 1 file now uncovered.

3228 of 3734 relevant lines covered (86.45%)

44.33 hits per line

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

95.69
/src/typescript-generator/response-type-coder.js
1
import { printObject } from "./printers.js";
2✔
2
import { SchemaTypeCoder } from "./schema-type-coder.js";
2✔
3
import { TypeCoder } from "./type-coder.js";
2✔
4

2✔
5
export class ResponseTypeCoder extends TypeCoder {
2✔
6
  constructor(requirement, openApi2MediaTypes = []) {
2✔
7
    super(requirement);
108✔
8

108✔
9
    this.openApi2MediaTypes = openApi2MediaTypes;
108✔
10
  }
108✔
11

2✔
12
  names() {
2✔
13
    return super.names(this.requirement.data.$ref.split("/").at(-1));
×
14
  }
×
15

2✔
16
  buildContentObjectType(script, response) {
2✔
17
    if (response.has("content")) {
60✔
18
      return response.get("content").map((content, mediaType) => [
44✔
19
        mediaType,
64✔
20
        `{ 
64✔
21
            schema:  ${new SchemaTypeCoder(content.get("schema")).write(script)}
64✔
22
         }`,
64✔
23
      ]);
64✔
24
    }
44✔
25

16✔
26
    return this.openApi2MediaTypes.map((mediaType) => [
16✔
27
      mediaType,
16✔
28
      `{
16✔
29
            schema: ${new SchemaTypeCoder(response.get("schema")).write(script)}
16✔
30
         }`,
16✔
31
    ]);
16✔
32
  }
16✔
33

2✔
34
  printContentObjectType(script, response) {
2✔
35
    if (response.has("content") || response.has("schema")) {
106✔
36
      return printObject(this.buildContentObjectType(script, response));
60✔
37
    }
60✔
38

46✔
39
    return "never";
46✔
40
  }
46✔
41

2✔
42
  buildHeaders(script, response) {
2✔
43
    return response
2✔
44
      .get("headers")
2✔
45
      .map((value, name) => [
2✔
46
        name,
4✔
47
        `{ schema: ${new SchemaTypeCoder(value.get("schema") ?? value).write(
4!
48
          script,
4✔
49
        )}}`,
4✔
50
      ]);
4✔
51
  }
2✔
52

2✔
53
  printHeaders(script, response) {
2✔
54
    if (!response.has("headers")) {
106✔
55
      return "never";
104✔
56
    }
104✔
57

2✔
58
    return printObject(this.buildHeaders(script, response));
2✔
59
  }
2✔
60

2✔
61
  printRequiredHeaders(response) {
2✔
62
    const requiredHeaders = (response.get("headers") ?? [])
108✔
63
      .map((value, name) => ({ name, required: value.data.required }))
108✔
64
      .filter(({ required }) => required)
108✔
65
      .map(({ name }) => `"${name}"`);
108✔
66

108✔
67
    return requiredHeaders.length === 0 ? "never" : requiredHeaders.join(" | ");
108✔
68
  }
108✔
69

2✔
70
  modulePath() {
2✔
NEW
71
    return `types/${this.requirement.data.$ref}.ts`;
×
72
  }
×
73

2✔
74
  writeCode(script) {
2✔
75
    return `{
106✔
76
          headers: ${this.printHeaders(script, this.requirement)};
106✔
77
          requiredHeaders: ${this.printRequiredHeaders(this.requirement)};
106✔
78
          content: ${this.printContentObjectType(script, this.requirement)};
106✔
79
        }`;
106✔
80
  }
106✔
81
}
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