Mock IChatProviders when testing without secrets

This commit is contained in:
Dominion
2023-05-23 02:59:02 -04:00
parent e6003a7c3c
commit 76b214d40e
10 changed files with 466 additions and 35 deletions
+6 -5
View File
@@ -38,15 +38,16 @@ You need the Dotnet 6.0 SDK and npm>=v5.7 (in your PATH) to compile the server.
The recommended IDE is Visual Studio 2019 which has installation options for both of these.
In order to run the integration tests you must have the following environment variables set:
In order to run the integration tests you must have the following environment variables set. To run them more accurately, include the optional ones.
- `TGS_TEST_DATABASE_TYPE`: `MySql`, `MariaDB`, `PostgresSql`, or `SqlServer`.
- `TGS_TEST_CONNECTION_STRING`: To a valid database connection string. You can use the setup wizard to create one.
- `TSG_TEST_DISCORD_TOKEN`: To a valid discord bot token.
- `TGS_TEST_DISCORD_CHANNEL`: To a valid discord channel ID that the above bot can access.
- `TGS_TEST_IRC_CONNECTION_STRING`: To a valid IRC connection string. See the code for [IrcConnectionStringBuilder](../src/Tgstation.Server.Api/Models/IrcConnectionStringBuilder.cs) for details.
- `TGS_TEST_IRC_CHANNEL`: To a valid IRC channel accessible with the above connection.
- `TGS_TEST_BRANCH`: Should be either `dev` or `master` depending on what you are working off of. Used for repository tests.
- (Optional) `TGS_TEST_GITHUB_TOKEN`: A GitHub personal access token with no scopes used to bypass rate limits.
- (Optional) The following variables are all interdependent, so if one is set they all must be.
- `TSG_TEST_DISCORD_TOKEN`: To a valid discord bot token.
- `TGS_TEST_DISCORD_CHANNEL`: To a valid discord channel ID that the above bot can access.
- `TGS_TEST_IRC_CONNECTION_STRING`: To a valid IRC connection string. See the code for [IrcConnectionStringBuilder](../src/Tgstation.Server.Api/Models/IrcConnectionStringBuilder.cs) for details.
- `TGS_TEST_IRC_CHANNEL`: To a valid IRC channel accessible with the above connection.
### Know your Code
+6 -12
View File
@@ -17,8 +17,6 @@ on:
env:
TGS_DOTNET_VERSION: 6.0.x
TGS_TEST_DISCORD_CHANNEL: ${{ secrets.DISCORD_CHANNEL_ID }}
TGS_TEST_IRC_CHANNEL: ${{ secrets.IRC_CHANNEL }}
TGS_TEST_GITHUB_TOKEN: ${{ secrets.LIVE_TESTS_TOKEN }}
TGS_RELEASE_NOTES_TOKEN: ${{ secrets.DEV_PUSH_TOKEN }}
@@ -229,6 +227,9 @@ jobs:
fail-fast: false
matrix:
configuration: [ 'Debug', 'Release' ]
env:
TGS_TEST_DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
TGS_TEST_IRC_CONNECTION_STRING: ${{ secrets.IRC_CONNECTION_STRING }}
runs-on: ubuntu-latest
steps:
- name: Setup dotnet
@@ -269,6 +270,9 @@ jobs:
fail-fast: false
matrix:
configuration: [ 'Debug', 'Release' ]
env:
TGS_TEST_DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
TGS_TEST_IRC_CONNECTION_STRING: ${{ secrets.IRC_CONNECTION_STRING }}
runs-on: windows-latest
steps:
- name: Setup dotnet
@@ -334,8 +338,6 @@ jobs:
TGS_CONNSTRING_VALUE="Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Initial Catalog=TGS_${{ matrix.watchdog-type }}_${{ matrix.configuration }};Application Name=tgstation-server"
echo "TGS_TEST_CONNECTION_STRING=$(echo $TGS_CONNSTRING_VALUE)" >> $GITHUB_ENV
echo "TGS_TEST_DATABASE_TYPE=SqlServer" >> $GITHUB_ENV
echo "TGS_TEST_DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN_WINDOWS_SQLSERVER }}" >> $GITHUB_ENV
echo "TGS_TEST_IRC_CONNECTION_STRING=${{ secrets.IRC_CONNECTION_STRING_WINDOWS_SQLSERVER }}" >> $GITHUB_ENV
- name: Checkout (Branch Push)
uses: actions/checkout@v3
@@ -458,24 +460,18 @@ jobs:
run: |
echo "TGS_TEST_DATABASE_TYPE=Sqlite" >> $GITHUB_ENV
echo "TGS_TEST_CONNECTION_STRING=Data Source=TGS_${{ matrix.watchdog-type }}_${{ matrix.configuration }}.sqlite3;Mode=ReadWriteCreate" >> $GITHUB_ENV
echo "TGS_TEST_DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN_LINUX_SQLITE }}" >> $GITHUB_ENV
echo "TGS_TEST_IRC_CONNECTION_STRING=${{ secrets.IRC_CONNECTION_STRING_LINUX_SQLITE }}" >> $GITHUB_ENV
- name: Set PostgresSql Connection Info
if: ${{ matrix.database-type == 'PostgresSql' }}
run: |
echo "TGS_TEST_DATABASE_TYPE=PostgresSql" >> $GITHUB_ENV
echo "TGS_TEST_CONNECTION_STRING=Application Name=tgstation-server;Host=127.0.0.1;Username=postgres;Password=postgres;Database=TGS__${{ matrix.watchdog-type }}_${{ matrix.configuration }}" >> $GITHUB_ENV
echo "TGS_TEST_DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN_LINUX_POSTGRES }}" >> $GITHUB_ENV
echo "TGS_TEST_IRC_CONNECTION_STRING=${{ secrets.IRC_CONNECTION_STRING_LINUX_POSTGRES }}" >> $GITHUB_ENV
- name: Set MariaDB Connection Info
if: ${{ matrix.database-type == 'MariaDB' }}
run: |
echo "TGS_TEST_DATABASE_TYPE=MariaDB" >> $GITHUB_ENV
echo "TGS_TEST_CONNECTION_STRING=Server=127.0.0.1;uid=root;pwd=mariadb;database=tgs__${{ matrix.watchdog-type }}_${{ matrix.configuration }}" >> $GITHUB_ENV
echo "TGS_TEST_DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN_LINUX_MARIADB }}" >> $GITHUB_ENV
echo "TGS_TEST_IRC_CONNECTION_STRING=${{ secrets.IRC_CONNECTION_STRING_LINUX_MARIADB }}" >> $GITHUB_ENV
- name: Set MySQL Connection Info
if: ${{ matrix.database-type == 'MySql' }}
@@ -483,8 +479,6 @@ jobs:
echo "TGS_TEST_DATABASE_TYPE=MySql" >> $GITHUB_ENV
echo "TGS_TEST_CONNECTION_STRING=Server=127.0.0.1;Port=3307;uid=root;pwd=mysql;database=tgs__${{ matrix.watchdog-type }}_${{ matrix.configuration }}" >> $GITHUB_ENV
echo "Database__ServerVersion=5.7.31" >> $GITHUB_ENV
echo "TGS_TEST_DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN_LINUX_MYSQL }}" >> $GITHUB_ENV
echo "TGS_TEST_IRC_CONNECTION_STRING=${{ secrets.IRC_CONNECTION_STRING_LINUX_MYSQL }}" >> $GITHUB_ENV
- name: Set General__UseBasicWatchdog
if: ${{ matrix.watchdog-type == 'Basic' }}