Skip to content

Commit dd71a86

Browse files
committed
Add health files.
1 parent 509675f commit dd71a86

File tree

6 files changed

+237
-0
lines changed

6 files changed

+237
-0
lines changed

.editorconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# This file is for unifying the coding style for different editors and IDEs
2+
# editorconfig.org
3+
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true
11+
indent_style = tab
12+
13+
[*.html]
14+
insert_final_newline = false
15+
trim_trailing_whitespace = false
16+
17+
[*.{yml,yaml}]
18+
indent_style = space
19+
indent_size = 2
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Static Analysis
2+
3+
on:
4+
push:
5+
branches: master
6+
pull_request:
7+
branches: master
8+
workflow_dispatch:
9+
10+
jobs:
11+
js:
12+
name: ESLint
13+
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Check out the source code
18+
uses: actions/checkout@v4
19+
20+
- name: Run ESLint
21+
uses: polylang/actions/eslint@main
22+
with:
23+
do-js: true
24+
js-path: './src'
25+
do-style: false

.github/workflows/typos.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Spell Check
2+
3+
on:
4+
push:
5+
branches: master
6+
pull_request:
7+
branches: master
8+
workflow_dispatch:
9+
10+
jobs:
11+
testing:
12+
name: Spell Check with Typos
13+
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout Actions Repository
18+
uses: actions/checkout@v4
19+
20+
- name: Check spelling
21+
uses: crate-ci/typos@master

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Folders, allowing symbolic links for tmp/
2+
node_modules/
3+
4+
# Files
5+
.DS_Store
6+
package-lock.json

.typos.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[files]
2+
extend-exclude = [
3+
".git/",
4+
"node_modules/",
5+
".typos.toml",
6+
]
7+
ignore-hidden = false

README.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# 🧪 Polylang E2E Test Utils
2+
3+
This package provides shared E2E testing utilities for Polylang projects.
4+
5+
## 📦 Installation
6+
7+
```bash
8+
npm install --save-dev @wpsyntex/e2e-test-utils
9+
```
10+
11+
## 🚀 Usage
12+
13+
### ⚙️ Playwright configuration
14+
15+
Create a `playwright.config.js` file in your project's root:
16+
17+
```javascript
18+
import { getPlaywrightConfig } from '@wpsyntex/e2e-test-utils';
19+
20+
export default getPlaywrightConfig( {
21+
// Override any default configuration here
22+
use: {
23+
// Custom use options
24+
globalSetup: require.resolve( 'path-to-your/global.setup.js' ), // Falls back to the packaged one.
25+
},
26+
webServer: {
27+
// Custom webServer options
28+
}
29+
} );
30+
```
31+
32+
#### Configuration Options
33+
34+
The `getPlaywrightConfig` function accepts an options object that can override any of the default configuration:
35+
36+
- `use`: Override default Playwright use options
37+
- `webServer`: Override default webServer configuration
38+
- Any other Playwright configuration options
39+
40+
#### Default Configuration
41+
42+
The default configuration includes:
43+
44+
- Chrome browser setup
45+
- HTML reporter
46+
- CI-specific settings
47+
- Default storage state path
48+
- Local development server configuration
49+
50+
### 📚 API Documentation
51+
52+
#### 🌐 Language Management Functions
53+
54+
##### `getAllLanguages( requestUtils )`
55+
Retrieves a list of all configured languages in Polylang.
56+
- **Parameters:**
57+
- `requestUtils`: Gutenberg request utils object
58+
- **Returns:** Promise resolving to the list of languages
59+
60+
##### `getLanguage( requestUtils, slug )`
61+
Retrieves a specific language by its slug.
62+
- **Parameters:**
63+
- `requestUtils`: Gutenberg request utils object
64+
- `slug`: Language slug to retrieve
65+
- **Returns:** Promise resolving to the language data
66+
67+
##### `createLanguage( requestUtils, locale )`
68+
Creates a new language in Polylang.
69+
- **Parameters:**
70+
- `requestUtils`: Gutenberg request utils object
71+
- `locale`: Language locale to create (e.g., 'fr_FR')
72+
- **Returns:** Promise resolving to the created language
73+
74+
##### `deleteLanguage( requestUtils, slug )`
75+
Deletes a specific language by its slug.
76+
- **Parameters:**
77+
- `requestUtils`: Gutenberg request utils object
78+
- `slug`: Language slug to delete
79+
- **Returns:** Promise resolving to the deletion result
80+
81+
##### `deleteAllLanguages( requestUtils )`
82+
Deletes all configured languages except the default one.
83+
- **Parameters:**
84+
- `requestUtils`: Gutenberg request utils object
85+
- **Returns:** Promise resolving to the deletion results
86+
87+
#### ⚙️ Settings Management Functions
88+
89+
##### `getSettings( requestUtils )`
90+
Retrieves all Polylang plugin settings.
91+
- **Parameters:**
92+
- `requestUtils`: Gutenberg request utils object
93+
- **Returns:** Promise resolving to the settings object
94+
95+
##### `setSetting( requestUtils, settingKey, settingValue )`
96+
Updates a specific plugin setting.
97+
- **Parameters:**
98+
- `requestUtils`: Gutenberg request utils object
99+
- `settingKey`: The key of the setting to update
100+
- `settingValue`: The new value for the setting
101+
- **Returns:** Promise resolving to the updated setting
102+
103+
##### `resetAllSettings( requestUtils )`
104+
Resets all plugin settings to their default values.
105+
- **Parameters:**
106+
- `requestUtils`: Gutenberg request utils object
107+
- **Returns:** Promise resolving to the reset operation result
108+
- **Note:** Preserves the default language setting
109+
110+
#### 🏷️ Taxonomy Management Functions
111+
112+
##### `getAllTerms( requestUtils, taxonomy )`
113+
Retrieves all terms for a specific taxonomy.
114+
- **Parameters:**
115+
- `requestUtils`: Gutenberg request utils object
116+
- `taxonomy`: Taxonomy slug
117+
- **Returns:** Promise resolving to the list of terms
118+
119+
##### `getTermBySlug( requestUtils, taxonomy, slug )`
120+
Retrieves a specific term by its slug within a taxonomy.
121+
- **Parameters:**
122+
- `requestUtils`: Gutenberg request utils object
123+
- `taxonomy`: Taxonomy slug
124+
- `slug`: Term slug to retrieve
125+
- **Returns:** Promise resolving to the term data
126+
127+
##### `deleteAllTerms( requestUtils, taxonomy )`
128+
Deletes all terms within a specific taxonomy.
129+
- **Parameters:**
130+
- `requestUtils`: Gutenberg request utils object
131+
- `taxonomy`: Taxonomy slug
132+
- **Returns:** Promise resolving to the deletion results
133+
134+
#### 🔧 Additional Exports
135+
136+
##### `globalSetup`
137+
138+
Global setup function for Playwright tests. Ensures fixtures are deleted and global context is set up properly.
139+
140+
#### 💡 Usage Example
141+
142+
```javascript
143+
import {
144+
createLanguage,
145+
setSetting,
146+
getAllTerms
147+
} from '@wpsyntex/e2e-test-utils';
148+
149+
// Create a new language
150+
await createLanguage( requestUtils, 'fr_FR' );
151+
152+
// Update a setting
153+
await setSetting( requestUtils, 'hide_default', true );
154+
155+
// Get all terms from a taxonomy
156+
const terms = await getAllTerms( requestUtils, 'category' );
157+
```
158+
159+
All these functions are designed to work with the Gutenberg request utils object and follow REST API patterns for interacting with Polylang's functionality. They provide a comprehensive set of tools for managing languages, settings, and taxonomies in E2E tests.

0 commit comments

Comments
 (0)