diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 70cedb5..a8459dd 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -11,23 +11,30 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.0.x - - name: Build - run: dotnet build + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Build + run: dotnet build tests: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Test WeatherApp - run: dotnet test ./WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj --verbosity normal + - name: Test WeatherApp + run: dotnet test ./WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj --verbosity normal /p:CollectCoverage=true /p:CoverletOutput=../../../TestResults/ - - name: Test DatabaseApp - run: dotnet test ./WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj --verbosity normal + - name: Test DatabaseApp + run: dotnet test ./WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj --verbosity normal /p:CollectCoverage=true /p:CoverletOutput=../../../TestResults/ /p:MergeWith=../../../TestResults/coverage.json /p:CoverletOutputFormat=lcov + + - name: Publish coverage report + uses: coverallsapp/github-action@v2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + file: './TestResults/coverage.info' + format: lcov diff --git a/README.md b/README.md index 7764d9e..ed8b4d1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +[![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge)](./LICENSE) +![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/shishnk/weather-bot-api/dotnet.yml?style=for-the-badge&label=BUILD%2FTESTS) +![Coveralls](https://img.shields.io/coverallsCoverage/github/shishnk/weather-bot-api?style=for-the-badge) +![Website](https://img.shields.io/website?url=https%3A%2F%2Fwttr.in%2F&style=for-the-badge&label=wttr.in) + # WeatherBotApi ## Overview diff --git a/WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj b/WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj index 1887dfa..674ef7e 100644 --- a/WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj +++ b/WeatherBotApi.DatabaseApp/Tests/DatabaseApp.Tests/DatabaseApp.Tests.csproj @@ -10,6 +10,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/WeatherBotApi.TelegramBotApp/Core/TelegramBotApp.Application/TelegramCommands/TelegramCommands.cs b/WeatherBotApi.TelegramBotApp/Core/TelegramBotApp.Application/TelegramCommands/TelegramCommands.cs index e93afa8..b247dfe 100644 --- a/WeatherBotApi.TelegramBotApp/Core/TelegramBotApp.Application/TelegramCommands/TelegramCommands.cs +++ b/WeatherBotApi.TelegramBotApp/Core/TelegramBotApp.Application/TelegramCommands/TelegramCommands.cs @@ -117,6 +117,8 @@ public async Task> Execute(InvocationContext context, return "Invalid format for resend interval. Please use the format hh:mm".ToResult(); } + if (minutes > 59) return "Minutes should be less than 60".ToResult(); + var resendInterval = new TimeSpan(hours, minutes, 0); if (resendInterval < TimeSpan.FromMinutes(30)) // hardcode @@ -169,7 +171,7 @@ await cacheService.GetAsync>("allSubscriptions", { var subscription = userSubscriptions[i]; message.AppendLine( - $"{i + 1}) Location: {subscription.Location}, resend interval: {subscription.ResendInterval.ToString(@"hh\:mm")}"); + $"{i + 1}) Location: {subscription.Location}, resend interval: {(int)subscription.ResendInterval.TotalHours}:{subscription.ResendInterval.Minutes}"); } return message.Length > 0 @@ -219,6 +221,8 @@ public async Task> Execute(InvocationContext context, return "Invalid format for resend interval. Please use the format hh:mm".ToResult(); } + if (minutes > 59) return "Minutes should be less than 60".ToResult(); + var resendInterval = new TimeSpan(hours, minutes, 0); if (resendInterval < TimeSpan.FromMinutes(30)) // hardcode diff --git a/WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj b/WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj index ff9b161..6b78d43 100644 --- a/WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj +++ b/WeatherBotApi.WeatherApp/Tests/WeatherApp.Tests/WeatherApp.Tests.csproj @@ -10,6 +10,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive +