Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added code coverage. #323

Merged
merged 1 commit into from
Jun 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test Tools
name: Test Tools (Integration)

on:
push:
Expand All @@ -9,6 +9,7 @@ on:
- 'jest.config.js'
- 'tsconfig.json'
- 'tools/**'
- '.github/workflows/test-tools*.yml'
pull_request:
branches: ['**']
paths:
Expand All @@ -17,6 +18,7 @@ on:
- 'jest.config.js'
- 'tsconfig.json'
- 'tools/**'
- '.github/workflows/test-tools*.yml'

jobs:
test:
Expand All @@ -43,8 +45,11 @@ jobs:
- name: Install Dependencies
run: npm install

- name: Lint
run: npm run lint

- name: Tests
run: npm run test
run: |
npm run test:integ -- --coverage

- name: Upload coverage to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
48 changes: 48 additions & 0 deletions .github/workflows/test-tools-unit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Test Tools (Unit)

on:
push:
branches: ['**']
paths:
- 'package*.json'
- 'eslint.config.mjs'
- 'jest.config.js'
- 'tsconfig.json'
- 'tools/**'
- '.github/workflows/test-tools*.yml'
pull_request:
branches: ['**']
paths:
- 'package*.json'
- 'eslint.config.mjs'
- 'jest.config.js'
- 'tsconfig.json'
- 'tools/**'
- '.github/workflows/test-tools*.yml'

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Install Dependencies
run: npm install

- name: Lint
run: npm run lint

- name: Tests
run: |
npm run test:unit -- --coverage

- name: Upload coverage to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ node_modules
_site/

# build output
build/
build/

# coverage output
coverage/

1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Added license headers to TypeScript code ([#311](https://github.com/opensearch-project/opensearch-api-specification/pull/311))
- Added `npm run test:spec -- --dry-run --verbose` ([#303](https://github.com/opensearch-project/opensearch-api-specification/pull/303))
- Added `npm run test:unit` and `test:integ` ([#320](https://github.com/opensearch-project/opensearch-api-specification/pull/320))
- Added code coverage to tools' tests ([#323](https://github.com/opensearch-project/opensearch-api-specification/pull/323))

### Changed

Expand Down
79 changes: 42 additions & 37 deletions DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
<!-- TOC -->
* [Developer Guide](#developer-guide)
* [Getting Started](#getting-started)
* [Specification](#specification)
* [File Structure](#file-structure)
* [Grouping Operations](#grouping-operations)
* [Grouping Schemas](#grouping-schemas)
* [Superseded Operations](#superseded-operations)
* [Global Parameters](#global-parameters)
* [OpenAPI Extensions](#openapi-extensions)
* [Writing Spec Tests](#writing-spec-tests)
* [Running Spec Tests Locally](#running-spec-tests-locally)
* [Tools](#tools)
* [Setup](#setup)
* [Spec Merger](#spec-merger)
* [Arguments](#arguments)
* [Example](#example)
* [Spec Linter](#spec-linter)
* [Arguments](#arguments-1)
* [Example](#example-1)
* [Dump Cluster Spec](#dump-cluster-spec)
* [Arguments](#arguments-2)
* [Example](#example-2)
* [Coverage](#coverage)
* [Arguments](#arguments-3)
* [Example](#example-3)
* [Testing](#testing)
* [Tests](#tests)
* [Lints](#lints)
* [Workflows](#workflows)
* [Analyze PR Changes](#analyze-pr-changes)
* [Build](#build)
* [Deploy GitHub Pages](#deploy-github-pages)
* [Comment on PR](#comment-on-pr)
* [Test Tools](#test-tools)
* [Validate Spec](#validate-spec)
- [Developer Guide](#developer-guide)
- [Getting Started](#getting-started)
- [Specification](#specification)
- [File Structure](#file-structure)
- [Grouping Operations](#grouping-operations)
- [Grouping Schemas](#grouping-schemas)
- [Superseded Operations](#superseded-operations)
- [Global Parameters](#global-parameters)
- [OpenAPI Extensions](#openapi-extensions)
- [Writing Spec Tests](#writing-spec-tests)
- [Running Spec Tests Locally](#running-spec-tests-locally)
- [Tools](#tools)
- [Setup](#setup)
- [Spec Merger](#spec-merger)
- [Arguments](#arguments)
- [Example](#example)
- [Spec Linter](#spec-linter)
- [Arguments](#arguments-1)
- [Example](#example-1)
- [Dump Cluster Spec](#dump-cluster-spec)
- [Arguments](#arguments-2)
- [Example](#example-2)
- [Coverage](#coverage)
- [Arguments](#arguments-3)
- [Example](#example-3)
- [Testing](#testing)
- [Tests](#tests)
- [Lints](#lints)
- [Workflows](#workflows)
- [Analyze PR Changes](#analyze-pr-changes)
- [Build](#build)
- [Deploy GitHub Pages](#deploy-github-pages)
- [Comment on PR](#comment-on-pr)
- [Test Tools (Unit)](#test-tools-unit)
- [Test Tools (Integration)](#test-tools-integration)
- [Validate Spec](#validate-spec)
<!-- TOC -->

# Developer Guide
Expand Down Expand Up @@ -417,9 +418,13 @@ This workflow performs a [Jekyll](https://jekyllrb.com/) build of the `main` bra

This workflow is triggered by the completion of the workflows such as [Analyze PR Changes](#analyze-pr-changes) and downloading a JSON payload artifact which it uses to invoke a template from [.github/pr-comment-templates](.github/pr-comment-templates) to render a comment which is placed on the original triggering PR.

### [Test Tools](.github/workflows/test-tools.yml)
### [Test Tools (Unit)](.github/workflows/test-tools-unit.yml)

This workflow runs on PRs to invoke the [tools' tests](tools/tests) and [TypeScript linting](#lints) to ensure there are no breakages in behavior or departures from the desired code style and cleanliness.
This workflow runs on PRs to invoke the [tools' unit tests](tools/tests), upload test coverage to CodeCov, and run [TypeScript linting](#lints) to ensure there are no breakages in behavior or departures from the desired code style and cleanliness.

### [Test Tools (Integration)](.github/workflows/test-tools-integ.yml)

This workflow runs on PRs to invoke the [tools' integration tests](tools/tests) that require a running instance of OpenSearch to ensure there are no breakages in behavior.

### [Validate Spec](.github/workflows/validate-spec.yml)

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

## OpenSearch API Specification

[![Code Covergage](https://codecov.io/github/opensearch-project/opensearch-api-specification/graph/badge.svg?token=TO9YMAKSHH)](https://codecov.io/github/opensearch-project/opensearch-api-specification)
[![Test Tools (Unit)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-unit.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-unit.yml)
[![Test Tools (Integration)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-integ.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-integ.yml)
[![Test Spec](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test.yml)
[![Validate Spec](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec.yml)

- [OpenSearch API Specification](#opensearch-api-specification)
- [Welcome!](#welcome)
- [Project Resources](#project-resources)
Expand Down
Loading