Skip to content

Commit 19b865a

Browse files
committed
chore: setup basic project infrastructure
1 parent 964a81e commit 19b865a

27 files changed

+17699
-1
lines changed

.github/workflows/checks.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3+
4+
name: Node.js CI
5+
6+
on:
7+
push:
8+
branches: [master]
9+
pull_request:
10+
branches: [master]
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
strategy:
17+
matrix:
18+
node-version: [20.x]
19+
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
20+
21+
steps:
22+
- uses: actions/checkout@v2
23+
- name: Use Node.js ${{ matrix.node-version }}
24+
uses: actions/setup-node@v2
25+
with:
26+
node-version: ${{ matrix.node-version }}
27+
cache: "npm"
28+
- run: npm ci
29+
- run: npm test

.gitignore

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/build
6+
7+
# Generated files
8+
.docusaurus
9+
.cache-loader
10+
.idea
11+
12+
# Misc
13+
.DS_Store
14+
.env.local
15+
.env.development.local
16+
.env.test.local
17+
.env.production.local
18+
19+
npm-debug.log*

.npmrc

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
registry = https://registry.npmjs.org
2+
audit=false
3+
auto-install-peers=true
4+
save-exact=true

.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
20

.prettierignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.idea
2+
.docusaurus
3+
build
4+
LICENSE
5+
package.json
6+
package-lock.json

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2024 gemini-testing
3+
Copyright (c) 2024 YANDEX LLC
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Testplane Docs Website
2+
3+
Testplane is a modern and robust end-to-end testing framework. It features support for every browser with a single API, testing on real devices, great extensibility and vast visual testing capabilities.
4+
5+
This repository is a home for Testplane docs website.
6+
7+
## Development
8+
9+
### Install dependencies
10+
11+
```shell
12+
nvm use
13+
npm ci
14+
```
15+
16+
### Run local dev server
17+
18+
```shell
19+
npm start
20+
```
21+
22+
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
23+
24+
### Check your changes
25+
26+
This repository uses TypeScript, Eslint and Prettier.
27+
28+
To run all tests available, run:
29+
30+
```shell
31+
npm test
32+
```
33+
34+
To check types, run:
35+
36+
```shell
37+
npm run typecheck
38+
```
39+
40+
To fix code issues and formatting, run:
41+
42+
```shell
43+
npm run reformat
44+
```

babel.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
3+
};

blog/.empty

Whitespace-only changes.

docs/intro.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# Intro
6+
7+
Welcome to Testplane docs.

docusaurus.config.ts

+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import { themes as prismThemes } from "prism-react-renderer";
2+
import type { Config } from "@docusaurus/types";
3+
import type * as Preset from "@docusaurus/preset-classic";
4+
import { tailwindPlugin } from "./plugins/tailwind";
5+
6+
const config: Config = {
7+
title: "Testplane Docs",
8+
tagline: "Testplane is a modern end-to-end testing framework.",
9+
favicon: "img/favicon.ico",
10+
11+
// Set the production url of your site here
12+
url: "https://testplane.example.com",
13+
// Set the /<baseUrl>/ pathname under which your site is served
14+
// For GitHub pages deployment, it is often '/<projectName>/'
15+
baseUrl: "/",
16+
17+
// GitHub pages deployment config.
18+
organizationName: "gemini-testing",
19+
projectName: "testplane-docs",
20+
21+
onBrokenLinks: "throw",
22+
onBrokenMarkdownLinks: "warn",
23+
24+
i18n: {
25+
defaultLocale: "en",
26+
locales: ["en"],
27+
},
28+
29+
presets: [
30+
[
31+
"classic",
32+
{
33+
docs: {
34+
sidebarPath: "./sidebars.ts",
35+
editUrl: "https://github.com/gemini-testing/testplane-docs/tree/main/docs/",
36+
},
37+
blog: {
38+
showReadingTime: true,
39+
editUrl: "https://github.com/gemini-testing/testplane-docs/tree/main/blog/",
40+
},
41+
theme: {
42+
customCss: "./src/scss/custom.scss",
43+
},
44+
} satisfies Preset.Options,
45+
],
46+
],
47+
48+
themeConfig: {
49+
image: "img/docusaurus-social-card.jpg",
50+
navbar: {
51+
title: "testplane",
52+
logo: {
53+
alt: "Testplane Logo",
54+
src: "img/logo.svg",
55+
},
56+
items: [
57+
{
58+
type: "docSidebar",
59+
sidebarId: "mainSidebar",
60+
position: "left",
61+
label: "Tutorial",
62+
},
63+
{ to: "/blog", label: "Blog", position: "left" },
64+
{
65+
href: "https://github.com/facebook/docusaurus",
66+
label: "GitHub",
67+
position: "right",
68+
},
69+
],
70+
},
71+
footer: {
72+
style: "dark",
73+
links: [
74+
{
75+
title: "Docs",
76+
items: [
77+
{
78+
label: "Configuration",
79+
to: "/docs/config",
80+
},
81+
{
82+
label: "Events",
83+
to: "/docs/events",
84+
},
85+
{
86+
label: "API reference",
87+
to: "/docs/api",
88+
},
89+
],
90+
},
91+
{
92+
title: "Community",
93+
items: [
94+
{
95+
label: "GitHub",
96+
href: "https://github.com/gemini-testing/testplane",
97+
},
98+
{
99+
label: "Stack Overflow",
100+
href: "https://stackoverflow.com/questions/tagged/testplane",
101+
},
102+
],
103+
},
104+
{
105+
title: "More",
106+
items: [
107+
{
108+
label: "Releases",
109+
to: "https://github.com/gemini-testing/testplane/releases",
110+
},
111+
{
112+
label: "Installation",
113+
href: "/docs/installation",
114+
},
115+
{
116+
label: "First tests with testplane",
117+
href: "/docs/first-tests",
118+
},
119+
],
120+
},
121+
],
122+
copyright: `MIT License © ${new Date().getFullYear()}`,
123+
},
124+
prism: {
125+
theme: prismThemes.github,
126+
darkTheme: prismThemes.dracula,
127+
},
128+
} satisfies Preset.ThemeConfig,
129+
130+
plugins: ["docusaurus-plugin-sass", tailwindPlugin],
131+
};
132+
133+
export default config;

eslint.config.mjs

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import eslint from "@eslint/js";
2+
import geminiTesting from "eslint-config-gemini-testing";
3+
import reactRecommended from "eslint-plugin-react/configs/recommended.js";
4+
import reactJsxRuntime from "eslint-plugin-react/configs/jsx-runtime.js";
5+
import prettier from "eslint-config-prettier";
6+
import tseslint from "typescript-eslint";
7+
8+
export default tseslint.config(
9+
{
10+
ignores: ["node_modules/**", ".docusaurus/**", "babel.config.js", "eslint.config.mjs"],
11+
},
12+
{
13+
files: ["plugins/tailwind.ts"],
14+
languageOptions: {
15+
globals: {
16+
require: true,
17+
},
18+
},
19+
},
20+
eslint.configs.recommended,
21+
...tseslint.configs.recommendedTypeChecked,
22+
...tseslint.configs.stylisticTypeChecked,
23+
{
24+
languageOptions: {
25+
parserOptions: {
26+
project: true,
27+
tsconfigRootDir: import.meta.dirname,
28+
},
29+
},
30+
},
31+
{
32+
files: ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"],
33+
settings: {
34+
react: {
35+
version: "detect",
36+
},
37+
},
38+
},
39+
reactRecommended,
40+
reactJsxRuntime,
41+
{
42+
rules: geminiTesting.rules,
43+
},
44+
prettier,
45+
);

0 commit comments

Comments
 (0)