From 610e28967e91ec412f0f9b69bacefd37fd4af957 Mon Sep 17 00:00:00 2001 From: Marcel Veselka Date: Fri, 15 Aug 2025 15:35:26 +0200 Subject: [PATCH] feat: add new guides for file upload, download, and browser storage management --- docs/browser-local-storage.md | 362 ++++++++++++++++++ docs/download-files.md | 296 ++++++++++++++ docs/img/guides/upload-files/add-stories.png | Bin 0 -> 23842 bytes .../upload-files/new-test-upload-file.png | Bin 0 -> 41242 bytes .../guides/upload-files/prompt-new-test.png | Bin 0 -> 26601 bytes docs/project-context.md | 328 ++++++++++++++++ docs/upload-files.md | 196 ++++++++++ mkdocs.yml | 5 + 8 files changed, 1187 insertions(+) create mode 100644 docs/browser-local-storage.md create mode 100644 docs/download-files.md create mode 100644 docs/img/guides/upload-files/add-stories.png create mode 100644 docs/img/guides/upload-files/new-test-upload-file.png create mode 100644 docs/img/guides/upload-files/prompt-new-test.png create mode 100644 docs/project-context.md create mode 100644 docs/upload-files.md diff --git a/docs/browser-local-storage.md b/docs/browser-local-storage.md new file mode 100644 index 0000000..279120b --- /dev/null +++ b/docs/browser-local-storage.md @@ -0,0 +1,362 @@ +# πŸ—„οΈ Browser local storage + +Configure and upload browser local storage data to ensure your tests run with the necessary application state and user preferences. + +## Overview + +Browser local storage is crucial for testing web applications that rely on client-side data persistence. Wopee.io allows you to upload and configure local storage data that will be available during test execution, ensuring tests run with realistic application states. + +## What is browser local storage? + +Local storage is a web storage mechanism that allows web applications to store data locally within a user's browser. This data includes: + +- **User preferences**: Theme settings, language choices, display options +- **Authentication tokens**: Session tokens, API keys, refresh tokens +- **Application state**: Shopping cart contents, form data, user progress +- **Cache data**: Frequently accessed information, user-specific configurations + +## Supported storage types + +Wopee.io AI Agent automatically loads data from the `data` directory. It is based on Playwright's [browser context](https://playwright.dev/docs/test-state#browser-context) and supports multiple browser storage mechanisms: + +### localStorage + +Key-value pairs stored persistently in the browser. + +### sessionStorage + +Temporary storage that lasts for the duration of the page session. + +### Cookies + +Small pieces of data stored by the browser for specific domains. + +### IndexedDB + +More complex database storage for larger amounts of structured data. + +## How to upload local storage data: JSON Context File + +Upload a complete browser context file to your repository's `data` directory. The AI testing agent will automatically detect and apply this storage state. + +Create a file named `auth.json` in your `data` directory (example): + +```json +{ + "cookies": [ + { + "name": "session-username", + "value": "standard_user", + "domain": "www.saucedemo.com", + "path": "/", + "expires": 1752609084, + "httpOnly": false, + "secure": false, + "sameSite": "Lax" + } + ], + "origins": [ + { + "origin": "https://www.saucedemo.com", + "localStorage": [ + { + "name": "backtrace-guid", + "value": "b6ff9051-63fb-49f5-9ce9-7706db9c4960" + }, + { + "name": "backtrace-last-active", + "value": "1752608467035" + } + ] + } + ] +} +``` + +## File organization in your repository + +### Repository structure + +Place your browser context files in the `data` directory of your repository: + +``` +your-repository/ +β”œβ”€β”€ data/ +β”‚ └── auth.json # Authentication context +β”œβ”€β”€ tests/ +└── src/ +``` + +### Naming conventions + +- Use file name: `auth.json` +- The agent automatically loads the the JSON file + +## Storage data formats + +### Origin-based localStorage format + +The recommended format organizes storage by domain origin: + +```json +{ + "origins": [ + { + "origin": "https://example.com", + "localStorage": [ + { + "name": "user_id", + "value": "12345" + }, + { + "name": "settings", + "value": "{\"theme\": \"dark\", \"notifications\": true}" + } + ] + } + ] +} +``` + +### Cookies configuration + +Cookies are specified in an array with detailed properties: + +```json +{ + "cookies": [ + { + "name": "auth_session", // Cookie name + "value": "encrypted_session_data", // Cookie value + "domain": ".myapp.com", // Domain scope + "path": "/", // Path scope + "expires": 1752609084, // Unix timestamp + "secure": true, // HTTPS only + "httpOnly": false, // JavaScript accessible + "sameSite": "Lax" // SameSite policy + } + ] +} +``` + +### IndexedDB data + +Complex structured data for IndexedDB: + +```javascript +{ + "databases": [ + { + "name": "MyAppDB", + "version": 1, + "stores": [ + { + "name": "users", + "data": [ + {"id": 1, "name": "John Doe", "email": "john@example.com"}, + {"id": 2, "name": "Jane Smith", "email": "jane@example.com"} + ] + } + ] + } + ] +} +``` + +## Using storage data in tests + +### Automatic detection and application + +When you commit a JSON context file to your repository's `data` directory: + +1. **Automatic detection**: The AI agent scans the `data` directory for JSON files during test initialization +2. **Context loading**: When found, the agent logs "Browser storage state found and to be uploaded" +3. **Browser initialization**: A new browser context is created with the pre-configured storage state +4. **State persistence**: All cookies, localStorage, and sessionStorage remain available throughout the test session +5. **Cross-domain support**: Storage data is applied per origin, supporting multi-domain applications + +This seamless integration means tests automatically start with your configured authentication, user preferences, and application state. + +### Practical example: Setting up authentication + +1. **Create the context file**: Add `auth.json` to your `data` directory: + +```json +{ + "cookies": [ + { + "name": "session-username", + "value": "standard_user", + "domain": "www.saucedemo.com", + "path": "/", + "expires": 1752609084, + "httpOnly": false, + "secure": false, + "sameSite": "Lax" + } + ], + "origins": [ + { + "origin": "https://www.saucedemo.com", + "localStorage": [ + { + "name": "user-session", + "value": "authenticated" + }, + { + "name": "user-role", + "value": "standard" + } + ] + } + ] +} +``` + +2. **Run your tests**: The AI agent will automatically detect this file and initialize the browser with this authentication state + +3. **Tests start authenticated**: Your tests begin as if the user is already logged in, skipping login steps + +## Common use cases + +### Authentication testing + +Pre-configure authentication tokens and user sessions: + +```json +{ + "localStorage": { + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", + "refresh_token": "def456ghi789jkl012mno345pqr678stu901", + "user_profile": "{\"id\": 123, \"role\": \"admin\", \"permissions\": [\"read\", \"write\"]}" + }, + "cookies": [ + { + "name": "session_id", + "value": "secure_session_hash", + "domain": ".myapp.com", + "secure": true, + "httpOnly": true + } + ] +} +``` + +### E-commerce testing + +Set up shopping cart and user preferences: + +```json +{ + "localStorage": { + "shopping_cart": "{\"items\": [{\"product_id\": 456, \"quantity\": 2, \"price\": 29.99}], \"total\": 59.98}", + "user_preferences": "{\"currency\": \"USD\", \"shipping_address\": \"123 Main St\"}", + "recently_viewed": "[456, 789, 123, 654]", + "wishlist": "[789, 321, 555]" + } +} +``` + +### Application state testing + +Configure complex application states: + +```json +{ + "localStorage": { + "app_state": "{\"current_page\": \"dashboard\", \"sidebar_collapsed\": false}", + "user_settings": "{\"theme\": \"dark\", \"language\": \"en\", \"timezone\": \"UTC\"}", + "feature_flags": "{\"beta_ui\": true, \"advanced_features\": false}", + "cache_timestamp": "2024-01-15T10:30:00Z" + }, + "sessionStorage": { + "form_data": "{\"step\": 3, \"completed_steps\": [1, 2]}", + "temp_calculations": "{\"total\": 1250.50, \"tax\": 125.05}" + } +} +``` + +## Best practices + +!!! tip "Local storage best practices" + + - **Data consistency**: Ensure storage data matches your application's expected format + - **Token validity**: Use valid, non-expired authentication tokens + - **Minimal data**: Include only necessary data to avoid bloating + - **Security**: Avoid real user credentials in test storage data + - **Versioning**: Maintain different storage configurations for different test scenarios + +## Environment-specific configurations + +### Development environment + +```json +{ + "localStorage": { + "api_endpoint": "https://dev-api.myapp.com", + "debug_mode": "true", + "log_level": "debug" + } +} +``` + +### Staging environment + +```json +{ + "localStorage": { + "api_endpoint": "https://staging-api.myapp.com", + "debug_mode": "false", + "log_level": "info" + } +} +``` + +### Production-like testing + +```json +{ + "localStorage": { + "api_endpoint": "https://api.myapp.com", + "debug_mode": "false", + "log_level": "error" + } +} +``` + +## Troubleshooting + +### Storage not applied + +- Verify JSON format is valid +- Check that domain settings match your application +- Ensure storage keys match application expectations + +### Authentication issues + +- Validate token format and expiration +- Check cookie domain and path settings +- Verify authentication flow compatibility + +### Data format errors + +- Ensure nested JSON is properly escaped +- Validate data types match application requirements +- Check for special characters in values + +### Performance issues + +- Reduce storage data size if tests are slow +- Avoid large IndexedDB datasets +- Clean up unnecessary storage entries + +!!! warning "Security considerations" + + - Never use real user credentials in test storage data + - Avoid storing sensitive information in plain text + - Use test-specific tokens and session data + - Regularly rotate test authentication data + +!!! note "Need help?" + + For browser storage configuration issues, contact our support team at [help@wopee.io](mailto:help@wopee.io) or visit our [community discussions](https://github.com/orgs/Wopee-io/discussions). diff --git a/docs/download-files.md b/docs/download-files.md new file mode 100644 index 0000000..bcf59c1 --- /dev/null +++ b/docs/download-files.md @@ -0,0 +1,296 @@ +# πŸ“₯ Download files + +Test your web application's file download functionality to ensure users can successfully download files, reports, and other content. + +## Overview + +File downloads are a common feature in web applications, from document exports to media downloads. Wopee.io helps you test these download functionalities to ensure they work correctly across different browsers and scenarios. + +## Types of downloadable files to test + +### Common web app downloads + +- **Documents**: PDFs, Word documents, spreadsheets, presentations +- **Reports**: Generated reports, analytics exports, user data exports +- **Media files**: Images, videos, audio files, graphics +- **Data exports**: CSV files, JSON exports, database backups +- **Software**: Installers, updates, mobile apps +- **Templates**: Document templates, configuration files + +### Dynamic vs static downloads + +- **Static files**: Pre-existing files stored on the server +- **Dynamic files**: Generated on-demand based on user data or requests +- **Streaming downloads**: Large files downloaded in chunks +- **Authenticated downloads**: Files requiring login or permissions + +## How to test file downloads + +### Creating download tests with AI + +Use prompts to generate tests that verify download functionality: + +!!! tip "Use prompt for download testing" + + Create tests that verify file download functionality with specific prompts. + + ```prompt + Create test with following steps: + + - Navigate to `https://example.com/reports` + - Click the "Download PDF Report" button + - Verify that a PDF file was downloaded + - Check that the downloaded file is not empty + ``` + +### Manual test creation + +1. Navigate to your project in [Wopee Commander](https://cmd.wopee.io): Project > Analysis > Test +2. Click "Add new user story" or "Add new test" for existing user story +3. Add steps that include download interactions: + - Click download buttons or links + - Verify download completion + - Check file properties (size, format, content) +4. Save and run the test + +### Testing different download scenarios + +Create comprehensive tests for various download patterns: + +#### Direct download links + +```prompt +Test direct file download: +- Navigate to `https://example.com/files` +- Click on "sample-document.pdf" link +- Verify PDF file downloads successfully +- Check file size is greater than 0 bytes +``` + +#### Form-based downloads + +```prompt +Test report generation and download: +- Navigate to `https://example.com/reports` +- Select date range from "2024-01-01" to "2024-01-31" +- Click "Generate Report" button +- Wait for report generation +- Click "Download Report" button +- Verify CSV file downloads with correct data +``` + +## Download verification methods + +### What to verify in download tests + +When testing file downloads, verify these aspects: + +=== "File Properties" + + ```prompt + Verify download properties: + - Check that file was downloaded + - Verify file size is greater than 0 bytes + - Confirm correct file extension (.pdf, .csv, .xlsx) + - Check filename matches expected pattern + ``` + +=== "File Content" + + ```prompt + Verify download content: + - Open downloaded PDF and check it contains data + - Verify CSV has correct headers and data rows + - Check image files display correctly + - Confirm document formatting is preserved + ``` + +=== "Download Timing" + + ```prompt + Test download performance: + - Measure time from click to download completion + - Verify download doesn't timeout + - Check progress indicators work correctly + - Test download cancellation functionality + ``` + +## AI testing agent for downloads + +### Automatic download handling + +When using AI testing agent, file downloads are automatically handled: + +- **Download detection**: Automatically detects when downloads are triggered +- **File verification**: Checks that files are successfully downloaded +- **Content validation**: Basic verification that files contain data +- **Format checking**: Confirms file extensions match expected types + +The AI agent will automatically: + +- Click download buttons and links +- Wait for download completion +- Verify downloaded files exist +- Check basic file properties (size, format) +- Report download success or failure + +### Advanced download testing + +For more complex download scenarios, use specific prompts: + +#### Testing authenticated downloads + +```prompt +Test secure file download: +- Login with username "testuser" and password "password123" +- Navigate to "My Documents" section +- Click "Download Confidential Report" +- Verify PDF downloads successfully +- Logout and verify download link no longer works +``` + +#### Testing bulk downloads + +```prompt +Test multiple file download: +- Navigate to file gallery +- Select 3 images using checkboxes +- Click "Download Selected" button +- Verify ZIP file downloads containing all 3 images +- Extract ZIP and confirm all files are present +``` + +#### Testing download permissions + +```prompt +Test download access control: +- Login as regular user +- Navigate to admin reports section +- Attempt to download "Admin Only Report" +- Verify access denied message appears +- Login as admin user +- Verify same report downloads successfully +``` + +## Download test scenarios + +### E-commerce downloads + +Test digital product delivery and receipts: + +```prompt +Test digital product download: +- Add digital product to cart +- Complete purchase process +- Go to "My Downloads" page +- Click download link for purchased item +- Verify digital product file downloads +- Test download limit restrictions +``` + +### Report generation testing + +Test dynamic report creation: + +```prompt +Test custom report generation: +- Navigate to analytics dashboard +- Select "Last 30 days" date range +- Choose "Sales Report" type +- Click "Generate Report" button +- Wait for "Report Ready" notification +- Click "Download Report" button +- Verify Excel file downloads with correct data +``` + +### Media download testing + +Test image and video downloads: + +```prompt +Test media gallery downloads: +- Navigate to photo gallery +- Click on high-resolution image +- Click "Download Original" button +- Verify high-quality image downloads +- Check file size is larger than thumbnail +- Test download of different image formats +``` + +## Best practices + +!!! tip "Download testing best practices" + + - **Test different file types**: Verify downloads work for PDFs, images, documents, etc. + - **Check file integrity**: Ensure downloaded files are not corrupted + - **Test download limits**: Verify restrictions on file size, download attempts, etc. + - **Browser compatibility**: Test downloads across different browsers + - **Network conditions**: Test downloads with slow/unstable connections + - **Authentication**: Verify download permissions and access controls + +## Common download patterns to test + +### Direct download links + +- Static files linked directly from pages +- Right-click "Save As" functionality +- Download progress indicators + +### Generated file downloads + +- Reports created on-demand +- Export functionality from databases +- Customized documents based on user input + +### Authenticated downloads + +- Login-protected files +- Role-based download permissions +- Session-dependent file access + +### Bulk download operations + +- Multiple file selection and download +- ZIP archive creation and download +- Batch export functionality + +## Troubleshooting download tests + +### Download not working + +- Check if download button/link is correctly identified +- Verify the element selector is accurate +- Ensure download triggers are properly clicked +- Check for JavaScript-based download mechanisms + +### Download verification fails + +- Increase wait time for large file downloads +- Check if download location is accessible +- Verify file naming patterns match expectations +- Ensure browser download settings allow automatic downloads + +### Authentication issues + +- Verify login credentials are correct +- Check if session hasn't expired during test +- Ensure user has proper permissions for file access +- Test download links work manually first + +### Browser-specific issues + +- Some browsers block automatic downloads +- Different browsers have different download behaviors +- Test across multiple browser types +- Check browser download directory settings + +!!! warning "Testing considerations" + + - Large files may timeout during automated tests + - Some download types require specific browser configurations + - Network speed affects download test reliability + - Browser popup blockers may interfere with downloads + +!!! note "Need help?" + + For download testing issues, contact support at [help@wopee.io](mailto:help@wopee.io) or check our [community discussions](https://github.com/orgs/Wopee-io/discussions). diff --git a/docs/img/guides/upload-files/add-stories.png b/docs/img/guides/upload-files/add-stories.png new file mode 100644 index 0000000000000000000000000000000000000000..d86ce4efa6ea5123f02b0b69c1fdf2faf7c7ace6 GIT binary patch literal 23842 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 bmyb^|j$*GZC#oP%`o-^Q>fJ5AV;%NyXy+70 literal 0 HcmV?d00001 diff --git a/docs/img/guides/upload-files/new-test-upload-file.png b/docs/img/guides/upload-files/new-test-upload-file.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa65fb7de63e51362f0174e390a60934a5f0b85 GIT binary patch literal 41242 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 Nq)%OS7f}SIyhr6!mJ>fWegQ@ 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 >zc zx&AH<7T;Y&pZ^p-?0hziW_Gwk`%irV#Bss1c8BM?Jx>&tZ+TxFJMRvEP9{$kq<4_) zjc07>HQ9VBHW)Mgw^xX%pSL9O|G7+6XgH1^QyXdj9SK@2hP2xv4lX;3 z5{t_1w~dyBe=iC#5UL%4EcKH*ArU&oe@mNEsG?#hm|J;q68&3_046R-j9rM~Q+|f6 zziGRKZ^=LBfDQ@$h4spGLi+-+cedEUXj(Be(`^f+K&hn`*CES);GS7T0 z%_h=ewY6z00od%uv?4;}dK*qhp49fE!LrS<>#5ngoz&KR0L#d@k9@0Nqs`;w;};(L zk1=@6e#xZ3808^jS@EEvEl$2Xodsz9L9UdakB35`cwYYMXn2t(G`}Wmn@g#Rf;cB6 zDamNc5ncVw_Sb+eIb#A83Kb1E4NuAfV?vkkG^U(nUP-ouk%b}X`V)IYqngnzCv|sk zB>TV;2M2Hy4<+&}2s14$c8}HcVXN`<`qDW{v{4*q?p19O=a?iVzgvx0E`-}&Uq#dn z5ODsjA)YsFXO$py5$St1E$f;{z-AP<;4ZvQJqJM zmY3t434(XqDXu;@lL61O&W?R(yyNn$yS+3GCR6q8J7R(CvPJrThxQ{JBUS#>{ZS3e z{pW=pD}#v`$_CrlA==IDic4}6pY=U59)3lT*W)s}vUs@57Yu$JUP^!G!|5@JSw;eb z#+VQK^DE*s$M@7Z7j&b$Mwac=ic*Lm#^EvKt(d*9D+V%%X`HiA)pHcW~f z#Vqp2lZ$p5)NPcgvh~O=zFf#+r0{la~)2kJpHy6@A|g- zn@MDUEFtI5^_OQ)UYj|F#o~APtEs8ymp@%6TfVOQuP`?+nJ{*o)sM0K@-)H_eXMPJ zzCW55H=UNocbAMncdw{w*3+RU{vz`7caFo_ipF&Dxqc8FQ2P@wdP%FwE=vJr2@HI zp7NvWwh7_$ew@?aeHfl&ENzv(PuGj9xbHvyTJm*G5WaCD2VEt#UCq4v#9#e&&8O8% zU@yz{=QrmqH_G$fFOIF8lR~rZ`%^uj%kR7nz*#1(1D2n%#^2z_3Tp_K1e$$C3xb!) z^XK$X*h*9#mDW9EOv|s^f(^h-evMkGQL5~o`S|>B*7n}OTbf>`=rvE(bwAwW%sbZd z(Aq&F+i&rtf`|O$N!@ObR3s=`RzwTNlT`i$Df14l#*t$BMsS+!};xVZQJ z+^6B=;%mv6irRXp#MHfx+cj6-HLpSrWCE0wh0cf5iWH{xv7QYh9$9iwqjre!Uelt1 zM!Ct$)2*i*ft=f&X8cmpU_9v&y1+igC%Ur0Bj2-*_gYqEvkWnMuO(nwFGk<4q6;49 zHD>~A(yV>`2%W=O$L+!c(8CsmXjlYvH|rB+#)?l*&ln>XrP&_p

86-@PdbSYu=T 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 Analysis > Test +2. Click "Add new user story" or "Add new test" for existing user story +3. Add steps that include file upload interactions +4. Reference your uploaded files by their filename or relative path. +5. Save and run the test. + +## File management + +### Organizing uploaded files + +- Files are organized by project +- If you use files heavily consider using a folder structure in your `data` directory +- Files can be referenced in tests by their filename or relative path +- Maximum file size limit: 100MB per file (GitHub limit) + +### File naming conventions + +For better organization: + +- Use descriptive names: `sample-document.pdf` instead of `file1.pdf` +- Avoid special characters and spaces in filenames +- Use lowercase with hyphens: `test-image-large.jpg` +- Consider using folders: `data/images/product-photo.jpg`, `data/documents/sample.pdf` + +### Folder structure example + +``` +your-repository/ +β”œβ”€β”€ data/ +β”‚ β”œβ”€β”€ images/ +β”‚ β”‚ β”œβ”€β”€ wopee.png +β”‚ β”‚ β”œβ”€β”€ product-photo.jpg +β”‚ β”‚ └── user-avatar.png +β”‚ β”œβ”€β”€ documents/ +β”‚ β”‚ β”œβ”€β”€ sample.pdf +β”‚ β”‚ β”œβ”€β”€ test-invoice.pdf +β”‚ β”‚ └── user-manual.docx +β”‚ └── archives/ +β”‚ β”œβ”€β”€ backup.zip +β”‚ └── export-data.csv +``` + +## Using uploaded files in tests + +### AI testing agent + +When using AI testing agent, uploaded files are automatically detected and can be used for: + +- Form submissions with file inputs +- Document processing workflows +- Image upload validation +- Multi-file upload scenarios + +The AI agent will automatically: + +- Locate file input fields on the page +- Select the appropriate file from your data directory +- Handle the upload process +- Verify upload completion + +## Best practices + +!!! tip "File upload best practices" + + - **Test with realistic files**: Use files similar to what your users would upload + - **Vary file sizes**: Test with small and large files to ensure proper handling + - **Test different formats**: Upload various file types to validate format restrictions + - **Organize with folders**: Use a clear folder structure in your `data` directory + - **Descriptive naming**: Use clear, descriptive filenames for easy identification + - **Version control**: Keep test files in your repository for consistency across environments + +## Common use cases + +### E-commerce applications + +- Product image uploads +- Customer document verification +- Bulk product catalog imports + +### Content management systems + +- Media file uploads +- Document publishing workflows +- User avatar uploads + +### Business applications + +- Report uploads +- Data import functionality +- Compliance document submissions + +## File upload test scenarios + +### Single file upload + +```prompt +Test single file upload: +- Navigate to upload page +- Select file `test-document.pdf` +- Click upload button +- Verify success message appears +``` + +### Multiple file upload + +```prompt +Test multiple file upload: +- Navigate to multi-upload page +- Select files `image1.jpg`, `image2.png`, `document.pdf` +- Upload all files +- Verify all files appear in upload list +``` + +### File format validation + +```prompt +Test file format restrictions: +- Try uploading unsupported file type `script.exe` +- Verify error message about invalid format +- Upload supported file `image.jpg` +- Verify successful upload +``` + +## Troubleshooting + +### Upload fails + +- Check file size (must be ≀ 100MB for GitHub) +- Verify file exists in your repository's `data` directory +- Ensure file path is correct (case-sensitive) + +### File not found in tests + +- Verify file was committed to your GitHub repository +- Check file path reference in test (relative to `data` directory) +- Ensure file name matches exactly (case-sensitive) + +### Performance issues + +- Large files may take longer to upload during tests +- Consider using smaller test files for faster execution +- Monitor GitHub repository size limits + +!!! note "Need help?" + + If you encounter issues with file uploads, contact our support team at [help@wopee.io](mailto:help@wopee.io) or visit our [community discussions](https://github.com/orgs/Wopee-io/discussions). diff --git a/mkdocs.yml b/mkdocs.yml index 44b05fd..999f078 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,6 +16,11 @@ nav: - Manual setup: robot-framework/02-manual-setup.md - Setup with make: robot-framework/03-setup-with-make.md - Examples: robot-framework/04-some-more-examples.md + - Guides: + - πŸ“ Upload files: upload-files.md + - πŸ“₯ Download files: download-files.md + - πŸ—„οΈ Browser local storage: browser-local-storage.md + - 🌐 Project context: project-context.md - Other docs: - πŸ“– Glossary: glossary.md