Skip to content

When trying to generate coverage from yml or json file the coverage is 0, also the coveredApiCount. #14

@CopilotMe

Description

@CopilotMe

Steps to reproduce:
Case 1 - json working with proper test Get pet by status

psc.swaggerJsonUrl = "https://petstore.swagger.io/v2/swagger.json";

Output 1 - No tests:

{
  "basePath": "/v2",
  "coverage": 0,
  "coveredApiCount": 0,
  "missedApiCount": 14,
  "totalApiCount": 14,
  "coveredApiList": [],
  "missedApiList": [
    "/v2/pet/{petId}/uploadImage",
    "/v2/pet",
    "/v2/pet/findByStatus",
    "/v2/pet/findByTags",
    "/v2/pet/{petId}",
    "/v2/store/order",
    "/v2/store/order/{orderId}",
    "/v2/store/inventory",
    "/v2/user/createWithArray",
    "/v2/user/createWithList",
    "/v2/user/{username}",
    "/v2/user/login",
    "/v2/user/logout",
    "/v2/user"
  ]
}

Output 2 - ok with 1 test executed on /v2/pet/findByStatus

{
  "basePath": "/v2",
  "coverage": 0.21,
  "coveredApiCount": 3,
  "missedApiCount": 11,
  "totalApiCount": 14,
  "coveredApiList": [
    "/v2/pet",
    "/v2/pet/findByStatus",
    "/v2/pet/{petId}"
  ],
  "missedApiList": [
    "/v2/pet/{petId}/uploadImage",
    "/v2/pet/findByTags",
    "/v2/store/order",
    "/v2/store/order/{orderId}",
    "/v2/store/inventory",
    "/v2/user/createWithArray",
    "/v2/user/createWithList",
    "/v2/user/{username}",
    "/v2/user/login",
    "/v2/user/logout",
    "/v2/user"
  ]
}

Test used:

      await spec()
        .get('https://petstore.swagger.io/v2/pet/findByStatus')
        .withPathParams("status", 'available')
        .expectStatus(200)

Case 2 - yml file

  1. Set path to yml file:
psc.swaggerYamlPath = 'C:\\Users\\Copilotme\\Downloads\\openapi3-sample.yml'
  1. Output:
{
  "basePath": "http://petstore.swagger.io/v1",
  "coverage": 0,
  "coveredApiCount": 0,
  "missedApiCount": 2,
  "totalApiCount": 2,
  "coveredApiList": [],
  "missedApiList": [
    "http://petstore.swagger.io/v1/pets",
    "http://petstore.swagger.io/v1/pets/{petId}"
  ]
}
  1. Sample yml is not attached but pasted as non-supported to upload
openapi: "3.0.0"
info:
  version: 1.0.0
  title: Swagger Petstore
  license:
    name: MIT
servers:
  - url: http://petstore.swagger.io/v1
paths:
  /pets:
    get:
      summary: List all pets
      operationId: listPets
      tags:
        - pets
      parameters:
        - name: limit
          in: query
          description: How many items to return at one time (max 100)
          required: false
          schema:
            type: integer
            format: int32
      responses:
        200:
          description: An paged array of pets
          headers:
            x-next:
              description: A link to the next page of responses
              schema:
                type: string
          content:
            application/json:    
              schema:
                $ref: "#/components/schemas/Pets"
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    post:
      summary: Create a pet
      operationId: createPets
      tags:
        - pets
      responses:
        201:
          description: Null response
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pets
      parameters:
        - name: petId
          in: path
          required: true
          description: The id of the pet to retrieve
          schema:
            type: string
      responses:
        200:
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pets"
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
components:
  schemas:
    Pet:
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
    Pets:
      type: array
      items:
        $ref: "#/components/schemas/Pet"
    Error:
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string

package.json

"dependencies": {
    "pactum": "^3.5.1"
  },
  "devDependencies": {
    "pactum-swagger-coverage": "^2.0.0"
  },

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions