Skip to content

Commit d029773

Browse files
committed
feat(rstest): add rstest-cdp skill
1 parent 65a2702 commit d029773

65 files changed

Lines changed: 3255 additions & 67 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

biome.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"includes": [
1818
"**/packages/**",
1919
"**/scripts/**",
20+
"**/e2e/**",
2021
"!skills/**/scripts/*.{js,cjs,mjs}",
2122
"!**/node_modules",
2223
"!**/dist",
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "@agent-skills/cdp-fixture-basic-no-debug",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module",
6+
"devDependencies": {
7+
"@rstest/core": "^0.8.2"
8+
}
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineConfig } from '@rstest/core';
2+
3+
export default defineConfig({
4+
root: __dirname,
5+
tools: {
6+
rspack: (config) => {
7+
config.devtool = 'inline-source-map';
8+
},
9+
},
10+
dev: {
11+
writeToDisk: true,
12+
},
13+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
export const summarizeScores = (scores: number[]) => {
2+
const total = scores.reduce((sum, value) => sum + value, 0);
3+
const average = scores.length ? total / scores.length : 0;
4+
const weightedTotal = total + average * 0.25;
5+
const label = `${scores.length}-scores`;
6+
7+
return {
8+
total,
9+
average,
10+
weightedTotal,
11+
label,
12+
};
13+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export const formatUser = (name: string, role = 'member') => {
2+
const trimmed = name.trim();
3+
const [firstName = '', lastName = ''] = trimmed.split(' ');
4+
const normalized = `${firstName.toLowerCase()}-${lastName.toLowerCase()}`;
5+
const displayName = `${firstName} ${lastName}`.trim();
6+
7+
return {
8+
trimmed,
9+
firstName,
10+
lastName,
11+
normalized,
12+
displayName,
13+
role,
14+
};
15+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { describe, expect, it } from '@rstest/core';
2+
import { summarizeScores } from '../src/math';
3+
import { formatUser } from '../src/profile';
4+
5+
describe('combined tests', () => {
6+
it('formats user profile', () => {
7+
const profile = formatUser('Ada Lovelace', 'admin');
8+
9+
expect(profile.displayName).toBe('Ada Lovelace');
10+
expect(profile.normalized).toBe('ada-lovelace');
11+
});
12+
13+
it('summarizes scores', () => {
14+
const result = summarizeScores([12, 18, 30]);
15+
16+
expect(result.total).toBe(60);
17+
expect(result.average).toBe(20);
18+
expect(result.weightedTotal).toBe(65);
19+
});
20+
});
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { describe, expect, it } from '@rstest/core';
2+
import { summarizeScores } from '../src/math';
3+
4+
describe('score summary', () => {
5+
it('computes totals', () => {
6+
const result = summarizeScores([12, 18, 30]);
7+
8+
expect(result.total).toBe(60);
9+
expect(result.average).toBe(20);
10+
expect(result.weightedTotal).toBe(65);
11+
});
12+
});
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { describe, expect, it } from '@rstest/core';
2+
import { formatUser } from '../src/profile';
3+
4+
describe('user profile', () => {
5+
it('formats display names', () => {
6+
const profile = formatUser('Ada Lovelace', 'admin');
7+
8+
expect(profile.displayName).toBe('Ada Lovelace');
9+
expect(profile.normalized).toBe('ada-lovelace');
10+
});
11+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"compilerOptions": {
3+
"module": "ESNext",
4+
"target": "ESNext",
5+
"moduleResolution": "Bundler",
6+
"types": ["@rstest/core"],
7+
"strict": true
8+
},
9+
"include": ["src", "test", "rstest.config.ts"]
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "@agent-skills/cdp-fixture-basic",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module",
6+
"devDependencies": {
7+
"@rstest/core": "^0.8.2"
8+
}
9+
}

0 commit comments

Comments
 (0)