diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index affcfe1..d919f20 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,6 @@ name: CI on: [push] + jobs: build: name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }} @@ -7,8 +8,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - node: ['14.x', '16.x'] - os: [ubuntu-latest, windows-latest, macOS-latest] + node: ['16.x'] + os: [ubuntu-latest] steps: - name: Checkout repo @@ -19,6 +20,9 @@ jobs: with: node-version: ${{ matrix.node }} + - name: Print Docker status + run: systemctl status docker + - name: Install deps and build (with cache) uses: bahmutov/npm-install@v1 @@ -28,5 +32,8 @@ jobs: - name: Test run: yarn test --ci --coverage --maxWorkers=2 + - name: Coveralls GitHub Action + uses: coverallsapp/github-action@v2 + - name: Build run: yarn build diff --git a/README.md b/README.md index fb00a12..39ba352 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Knex Relay Cursor Pagination +[![Coverage Status](https://coveralls.io/repos/github/brietsparks/knex-relay-cursor-pagination/badge.svg?branch=coveralls)](https://coveralls.io/github/brietsparks/knex-relay-cursor-pagination?branch=coveralls) + Easily implement [relay cursor pagination](https://relay.dev/graphql/connections.htm) in your Knex data layer. ## Install diff --git a/package.json b/package.json index d16ac8e..d749d43 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,9 @@ "prepare": "dts build", "size": "size-limit", "start": "dts watch", - "test": "dts test" + "test": "dts test", + "test:coverage": "dts test --coverage", + "test:coveralls": "dts test --coverage && coveralls < coverage/lcov.info" }, "husky": { "hooks": { @@ -50,6 +52,7 @@ "devDependencies": { "@size-limit/preset-small-lib": "^8.2.6", "@tsconfig/recommended": "^1.0.2", + "coveralls": "^3.1.1", "dts-cli": "^2.0.3", "husky": "^8.0.3", "knex": "^2.5.1", diff --git a/test/knex-relay-cursor-pagination.test.ts b/test/knex-relay-cursor-pagination.test.ts index 9728c2d..5083689 100644 --- a/test/knex-relay-cursor-pagination.test.ts +++ b/test/knex-relay-cursor-pagination.test.ts @@ -37,7 +37,7 @@ describe('createPagination', () => { }, }); await db.migrate.up(); - }); + }, 120000); afterAll(async () => { await db.destroy(); diff --git a/test/setup.ts b/test/setup.ts index 0d91cd8..06cb555 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -29,6 +29,7 @@ export async function createPgTestcontainer(): Promise= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -5905,6 +6100,21 @@ ssh2@^1.11.0, ssh2@^1.4.0: cpu-features "~0.0.8" nan "^2.17.0" +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -6195,6 +6405,14 @@ tough-cookie@^4.1.2: universalify "^0.2.0" url-parse "^1.5.3" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" @@ -6262,7 +6480,14 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tweetnacl@^0.14.3: +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== @@ -6414,6 +6639,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -6428,6 +6658,15 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"