Skip to content

Commit 5695e17

Browse files
committed
test: add tests
1 parent 5eba24d commit 5695e17

File tree

6 files changed

+238
-8
lines changed

6 files changed

+238
-8
lines changed

.github/workflows/CI.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ jobs:
2727
run: |
2828
apm install
2929
# run: node ./script/install-package-deps.js
30-
# - name: Atom Package dependencies
31-
# - name: Run tests 👩🏾‍💻
32-
# run: npm run test
30+
- name: Run tests 👩🏾‍💻
31+
run: npm run test
3332

3433
Lint:
3534
if: "!contains(github.event.head_commit.message, '[skip ci]')"

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"format": "prettier --write .",
2121
"test.format": "prettier . --check",
2222
"lint": "eslint . --fix",
23-
"test.lint": "eslint ."
23+
"test.lint": "eslint .",
24+
"test": "atom --test spec"
2425
},
2526
"engines": {
2627
"atom": ">=1.0.0 <2.0.0"
@@ -29,10 +30,12 @@
2930
"atom-languageclient": "^1.8.3"
3031
},
3132
"devDependencies": {
33+
"atom-jasmine3-test-runner": "^5.2.3",
3234
"eslint-config-atomic": "^1.14.3",
3335
"prettier-config-atomic": "^2.0.3"
3436
},
3537
"prettier": "prettier-config-atomic",
38+
"atomTestRunner": "./spec/runner",
3639
"configSchema": {
3740
"sourceKitServer": {
3841
"title": "SourceKit server",

pnpm-lock.yaml

Lines changed: 180 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/benchmark-spec.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
describe("Benchmark", () => {
2+
// This number doesn't match what timecope gives, but shows the trend
3+
it("Activation Benchmark", async () => {
4+
jasmine.attachToDOM(atom.views.getView(atom.workspace))
5+
atom.packages.triggerDeferredActivationHooks()
6+
// Activate activation hook
7+
atom.packages.triggerActivationHook("core:loaded-shell-environment")
8+
9+
// For benchmark, activate the deps manually before loading the actual package:
10+
const deps = []
11+
await Promise.all(deps.map((p) => atom.packages.activatePackage(p)))
12+
13+
// Activate the package
14+
measure("Activation Time", async function activationBenchmark() {
15+
await atom.packages.activatePackage("ide-sourcekit")
16+
})
17+
18+
expect(atom.packages.isPackageLoaded("ide-sourcekit")).toBeTruthy()
19+
})
20+
})

spec/main-spec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
describe("tests", () => {
2+
beforeEach(async () => {
3+
jasmine.attachToDOM(atom.views.getView(atom.workspace))
4+
5+
/* Activation */
6+
// Trigger deferred activation
7+
atom.packages.triggerDeferredActivationHooks()
8+
// Activate activation hook
9+
atom.packages.triggerActivationHook("core:loaded-shell-environment")
10+
11+
// Activate the package
12+
await atom.packages.activatePackage("ide-sourcekit")
13+
})
14+
15+
it("Activation", function () {
16+
expect(atom.packages.isPackageLoaded("ide-sourcekit")).toBeTruthy()
17+
})
18+
})

spec/runner.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use babel"
2+
import { createRunner } from "atom-jasmine3-test-runner"
3+
4+
// https://github.com/UziTech/atom-jasmine3-test-runner#api
5+
export default createRunner({
6+
testPackages: getPackageDeps(),
7+
timeReporter: true,
8+
specHelper: true,
9+
})
10+
11+
function getPackageDeps() {
12+
const pkg = require("../package.json")
13+
return Array.from(pkg["package-deps"] || []).map((p) => p.name || p) || []
14+
}

0 commit comments

Comments
 (0)