{"id":28948838,"url":"https://github.com/phmatray/autotests","last_synced_at":"2026-05-08T15:39:36.543Z","repository":{"id":299240930,"uuid":"959903711","full_name":"phmatray/AutoTests","owner":"phmatray","description":"Automated E2E testing demo for Blazor using Reqnroll, showcasing BDD acceptance tests with Gherkin syntax and Playwright .NET","archived":false,"fork":false,"pushed_at":"2026-04-18T11:48:44.000Z","size":58,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-04-18T13:26:39.678Z","etag":null,"topics":["blazor","csharp","demo","dotnet","e2e","gherkin","nunit","playwright","reqnroll","testing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phmatray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-03T14:37:21.000Z","updated_at":"2026-04-18T11:48:45.000Z","dependencies_parsed_at":"2025-12-17T22:04:08.493Z","dependency_job_id":null,"html_url":"https://github.com/phmatray/AutoTests","commit_stats":null,"previous_names":["phmatray/autotests"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phmatray/AutoTests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phmatray%2FAutoTests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phmatray%2FAutoTests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phmatray%2FAutoTests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phmatray%2FAutoTests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phmatray","download_url":"https://codeload.github.com/phmatray/AutoTests/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phmatray%2FAutoTests/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32786536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazor","csharp","demo","dotnet","e2e","gherkin","nunit","playwright","reqnroll","testing"],"created_at":"2025-06-23T11:05:49.074Z","updated_at":"2026-05-08T15:39:36.538Z","avatar_url":"https://github.com/phmatray.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ticket Booking Demo Project 🎟️\n\nThis repository demonstrates **Automated E2E Testing for Blazor using Reqnroll**. It showcases a simple ticket booking system with acceptance tests written in Gherkin syntax and executed with Playwright .NET.\n\n---\n\n## Table of Contents\n\n- [Features 🚀](#features-)\n- [Prerequisites ⚙️](#prerequisites-)\n- [Getting Started 🔧](#getting-started-)\n- [Running the Application 🚀](#running-the-application-)\n- [Running the Tests 🧪](#running-the-tests-)\n- [Project Structure 📂](#project-structure-)\n- [Contributing 🤝](#contributing-)\n- [License 📄](#license-)\n\n---\n\n## Features 🚀\n\n- **Event Listing:** Displays a list of upcoming events.\n- **Event Details:** Shows detailed information for each event.\n- **Ticket Booking:** Allows users to book tickets by entering their name.\n- **Automated Acceptance Tests:** Validates key user flows using Gherkin-based specifications with Reqnroll and Playwright .NET.\n\n---\n\n## Prerequisites ⚙️\n\n- [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) or later\n\n---\n\n## Getting Started 🔧\n\n1. **Clone the Repository**\n\n   ```bash\n   git clone https://github.com/phmatray/AutoTests.git\n   cd AutoTests\n   ```\n\n2. **Restore .NET Packages**\n\n   From the solution directory, run:\n\n   ```bash\n   dotnet restore\n   ```\n   \n3. **Install Playwright Browsers**\n\n   Navigate to the test project directory and install the required browsers:\n\n   ```bash\n   cd TicketBookingApp.EndToEndTests\n   pwsh bin/Debug/net9.0/playwright.ps1 install\n   ```\n\n4**Project Configuration**\n\n   The test project uses the following `csproj` configuration:\n\n   ```xml\n   \u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n\n     \u003cPropertyGroup\u003e\n       \u003cTargetFramework\u003enet9.0\u003c/TargetFramework\u003e\n     \u003c/PropertyGroup\u003e\n\n     \u003cItemGroup\u003e\n       \u003cPackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.13.0\" /\u003e\n       \u003cPackageReference Include=\"Microsoft.Playwright\" Version=\"1.51.0\" /\u003e\n       \u003cPackageReference Include=\"Reqnroll.NUnit\" Version=\"2.4.0\"/\u003e\n       \u003cPackageReference Include=\"nunit\" Version=\"4.3.2\" /\u003e\n       \u003cPackageReference Include=\"NUnit3TestAdapter\" Version=\"5.0.0\" /\u003e\n       \u003cPackageReference Include=\"Shouldly\" Version=\"4.3.0\"/\u003e\n     \u003c/ItemGroup\u003e\n\n   \u003c/Project\u003e\n   ```\n\n---\n\n## Running the Application 🚀\n\n1. **Navigate to the Blazor Project Directory**\n\n   ```bash\n   cd TicketBookingApp\n   ```\n\n2. **Run the Blazor Server Application**\n\n   ```bash\n   dotnet run\n   ```\n\n3. **Access the Application**\n\n   Open your browser and navigate to `http://localhost:5140/` (or the URL provided by your console) to view the ticket booking system.\n\n---\n\n## Running the Tests 🧪\n\n1. **Ensure the Blazor Application Is Running**\n\n   Start the Blazor app as described above.\n\n2. **Navigate to the Test Project Directory**\n\n   ```bash\n   cd TicketBookingApp.EndToEndTests\n   ```\n\n3. **Run the Test Suite**\n\n   ```bash\n   dotnet test\n   ```\n\nThe acceptance tests are written in Gherkin and located in the `/features` folder. Here’s an example of the feature file:\n\n```gherkin\nFeature: Ticket Booking System\n  As a user,\n  I want to view available events and book tickets,\n  So that I can attend an event.\n\n  Scenario: Home page lists available events\n    Given I navigate to the home page\n    Then I should see a list of events\n\n  Scenario: Event details are displayed correctly\n    Given I navigate to the event details page for event with id 1\n    Then I should see the event title \"Rock Concert\"\n\n  Scenario: Booking a ticket successfully\n    Given I navigate to the booking page for event with id 1\n    When I enter \"John Doe\" into the \"User Name\" field\n    And I click on \"Confirm Booking\"\n    Then I should see a confirmation message \"Booking Confirmed\"\n```\n\n---\n\n## Project Structure 📂\n\n```\n/TicketBookingApp\n├── Models/                 // Data models (e.g., Event.cs)\n├── Pages/                  // Blazor pages (Index.razor, EventDetails.razor, Booking.razor)\n├── Services/               // Application services (e.g., EventService.cs)\n└── Program.cs              // Application entry point\n\n/TicketBookingApp.EndToEndTests\n├── Features/               // Gherkin feature files (e.g., TicketBooking.feature)\n├── Hooks/                  // Playwright setup and teardown hooks\n├── Pages/                  // Page object models (Home, Event Details, Booking pages)\n├── StepDefinitions/        // Reqnroll/SpecFlow step definitions binding Gherkin to Playwright\n└── TicketBooking.feature   // Acceptance tests in Gherkin syntax\n```\n\n---\n\n## Contributing 🤝\n\nContributions are welcome! If you have suggestions, bug fixes, or new features, please open an issue or submit a pull request.  \n**Maintainer:** [phmatray](https://github.com/phmatray)\n\n---\n\n## License 📄\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n---\n\nHappy coding and testing! 🎉","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphmatray%2Fautotests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphmatray%2Fautotests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphmatray%2Fautotests/lists"}