Skip to content

Commit 5508c9b

Browse files
authored
Merge branch 'main' into @kacperzolkiewski/maestro-runner
2 parents 9a1eb85 + ab45e3d commit 5508c9b

435 files changed

Lines changed: 31333 additions & 4723 deletions

File tree

Some content is hidden

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

.github/workflows/docs-build.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: docs build
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'docs/**'
7+
- '.github/workflows/docs-build.yml'
8+
workflow_dispatch:
9+
10+
jobs:
11+
docs-build:
12+
runs-on: ubuntu-latest
13+
defaults:
14+
run:
15+
working-directory: docs
16+
steps:
17+
- name: Check out
18+
uses: actions/checkout@v4
19+
20+
- name: Set up Node
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: 22
24+
cache: yarn
25+
cache-dependency-path: |
26+
yarn.lock
27+
docs/yarn.lock
28+
29+
- name: Install library dependencies (local source)
30+
working-directory: ${{ github.workspace }}
31+
run: yarn install --immutable
32+
33+
- name: Install dependencies
34+
run: yarn install --immutable
35+
36+
- name: Typecheck docs
37+
working-directory: ${{ github.workspace }}
38+
run: yarn typecheck:docs
39+
40+
- name: Build docs
41+
run: yarn build
42+
43+
- name: Check docs llms.txt
44+
run: |
45+
file=build/llms.txt
46+
if [ ! -s "$file" ]; then
47+
echo "::error::$file is missing or empty"
48+
exit 1
49+
fi
50+
count=$(grep -cE '^- \[[^]]+\]\(https://docs\.swmansion\.com/react-native-enriched-html/[^)]+\)' "$file" || true)
51+
if [ "$count" -eq 0 ]; then
52+
echo "::error::$file lists no pages"
53+
exit 1
54+
fi
55+
echo "llms.txt lists $count pages"

.github/workflows/docs-publish.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: docs publish
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- '.github/workflows/docs-publish.yml'
10+
workflow_dispatch:
11+
12+
jobs:
13+
docs-publish:
14+
if: github.repository == 'software-mansion/react-native-enriched-html'
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
defaults:
19+
run:
20+
working-directory: docs
21+
steps:
22+
- name: Check out
23+
uses: actions/checkout@v4
24+
25+
- name: Set up Node
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: 22
29+
cache: yarn
30+
cache-dependency-path: |
31+
yarn.lock
32+
docs/yarn.lock
33+
34+
- name: Install library dependencies (local source)
35+
working-directory: ${{ github.workspace }}
36+
run: yarn install --immutable
37+
38+
- name: Install dependencies
39+
run: yarn install --immutable
40+
41+
- name: Typecheck docs
42+
working-directory: ${{ github.workspace }}
43+
run: yarn typecheck:docs
44+
45+
- name: Build docs
46+
run: yarn build
47+
48+
- name: Deploy to GitHub Pages
49+
uses: JamesIves/github-pages-deploy-action@v4
50+
with:
51+
folder: docs/build
52+
branch: gh-pages

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,6 @@ nitrogen/
9191

9292
# Maestro screenshot diffs
9393
.maestro/**/*_diff.png
94+
95+
# Claude skills
96+
.claude/skills/*-internal.md
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
appId: swmansion.enriched.example
2+
---
3+
# Fix: merge inline styles with plain text
4+
- launchApp
5+
6+
- tapOn:
7+
id: 'toggle-screen-button'
8+
9+
- tapOn:
10+
id: 'editor-input'
11+
12+
- tapOn:
13+
id: 'toolbar-bold'
14+
- tapOn:
15+
id: 'toolbar-italic'
16+
- tapOn:
17+
id: 'toolbar-underline'
18+
19+
- inputText: 'First line'
20+
- pressKey: Enter
21+
22+
- tapOn:
23+
id: 'toolbar-bold'
24+
- tapOn:
25+
id: 'toolbar-italic'
26+
- tapOn:
27+
id: 'toolbar-underline'
28+
- inputText: 'Second line'
29+
30+
- tapOn:
31+
id: 'editor-input'
32+
point: '5%,75%'
33+
34+
- pressKey: Backspace
35+
36+
- runFlow:
37+
file: '../subflows/capture_or_assert_screenshot.yaml'
38+
env:
39+
SCREENSHOT_NAME: 'inline_styles_merge'
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
appId: swmansion.enriched.example
2+
---
3+
# Verifies typing a URL directly into the editor
4+
- launchApp
5+
6+
- tapOn:
7+
id: 'toggle-screen-button'
8+
9+
- tapOn:
10+
id: "editor-input"
11+
12+
# autolinks break on text change or paste
13+
- inputText: 'swmansion.com'
14+
15+
- doubleTapOn:
16+
id: 'editor-input'
17+
point: '20%, 50%'
18+
- tapOn:
19+
text: 'Copy'
20+
21+
- tapOn:
22+
id: 'editor-input'
23+
point: '70%, 50%'
24+
- pressKey: Enter
25+
26+
- longPressOn:
27+
id: 'editor-input'
28+
point: '50%, 70%'
29+
- tapOn:
30+
text: 'Paste'
31+
- inputText: 'm'
32+
33+
- pressKey: Enter
34+
- inputText: 'swm'
35+
- longPressOn:
36+
id: 'editor-input'
37+
point: '50%, 75%'
38+
- tapOn:
39+
text: 'Paste'
40+
41+
- runFlow:
42+
file: '../subflows/capture_or_assert_screenshot.yaml'
43+
env:
44+
SCREENSHOT_NAME: 'links_visual_auto'
45+
46+
# manual link where href == textValue but does not match the linkRegex is considered as a manual link
47+
- runFlow:
48+
file: '../subflows/set_editor_value.yaml'
49+
env:
50+
VALUE: '<html><p><a href="example.com">example.com</a></p></html>'
51+
52+
- doubleTapOn:
53+
id: 'editor-input'
54+
point: '20%, 50%'
55+
- tapOn:
56+
text: 'Copy'
57+
58+
- tapOn:
59+
id: 'editor-input'
60+
point: '70%, 50%'
61+
- pressKey: Enter
62+
63+
- longPressOn:
64+
id: 'editor-input'
65+
point: '50%, 70%'
66+
- tapOn:
67+
text: 'Paste'
68+
- pressKey: Backspace
69+
70+
- runFlow:
71+
file: '../subflows/capture_or_assert_screenshot.yaml'
72+
env:
73+
SCREENSHOT_NAME: 'links_visual_manual'
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
appId: swmansion.enriched.example
2+
---
3+
# fix PR #637 - mention popups not closing when switching between mentions
4+
5+
- launchApp
6+
7+
- tapOn:
8+
id: "toggle-screen-button"
9+
10+
- tapOn:
11+
id: "editor-input"
12+
13+
- inputText: "mentions #gen @J"
14+
15+
# user popup visible
16+
- runFlow:
17+
file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml"
18+
env:
19+
SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_1"
20+
21+
- tapOn:
22+
id: "focus-button"
23+
24+
- tapOn:
25+
id: "editor-input"
26+
point: "30%, 50%"
27+
28+
# channel popup visible
29+
- runFlow:
30+
file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml"
31+
env:
32+
SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_2"
33+
34+
- tapOn:
35+
id: "focus-button"
36+
37+
- tapOn:
38+
id: "editor-input"
39+
point: "10%, 50%"
40+
41+
# no popup visible
42+
- runFlow:
43+
file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml"
44+
env:
45+
SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_3"
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
appId: swmansion.enriched.example
2+
---
3+
# Verifies that typing attributes are properly preserved on selection changes
4+
- launchApp
5+
6+
- tapOn:
7+
id: 'toggle-screen-button'
8+
9+
- tapOn:
10+
id: "editor-input"
11+
12+
- tapOn:
13+
id: "toolbar-bold"
14+
15+
- inputText: 'bold text'
16+
- pressKey: Enter
17+
- pressKey: Enter
18+
- pressKey: Enter
19+
- inputText: 'another line'
20+
21+
- doubleTapOn:
22+
id: 'editor-input'
23+
point: '20%, 75%'
24+
25+
- tapOn:
26+
id: 'editor-input'
27+
point: '50%, 15%'
28+
29+
- inputText: 'new'
30+
31+
- runFlow:
32+
file: '../subflows/capture_or_assert_screenshot.yaml'
33+
env:
34+
SCREENSHOT_NAME: 'preserve_typing_attributes_on_selection_changes'
6.9 KB
14.8 KB
9.77 KB

0 commit comments

Comments
 (0)