diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml new file mode 100644 index 0000000..1adaa3d --- /dev/null +++ b/.github/workflows/integration-tests.yaml @@ -0,0 +1,71 @@ +name: Integration Tests + +on: + push: + +env: + CARGO_TERM_COLOR: always + +jobs: + linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Prepare Scripts + run: | + mkdir -p $HOME/.config/dark-mode-daemon/scripts/ + cat < $HOME/.config/dark-mode-daemon/scripts/executable.sh + #!/usr/bin/env bash + echo "scripts ran" >> $HOME/protocol.txt + EOF + chmod +x $HOME/.config/dark-mode-daemon/scripts/executable.sh + - name: Run Daemon + run: cargo run --verbose -- daemon & + - name: Switch Mode + # TODO: Actually switch the mode + run: echo "Switching mode..." + - name: Assert Scripts Did Ran + run: | + sleep 5 + # Once when starting the scripts + echo "scripts ran" >> $HOME/expected.txt + # Once for when we toggled the mode + echo "scripts ran" >> $HOME/expected.txt + diff $HOME/expected.txt $HOME/protocol.txt + + macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Prepare Scripts + run: | + mkdir -p $HOME/.config/dark-mode-daemon/scripts/ + cat < $HOME/.config/dark-mode-daemon/scripts/executable.sh + #!/usr/bin/env bash + echo "scripts ran" >> $HOME/protocol.txt + EOF + chmod +x $HOME/.config/dark-mode-daemon/scripts/executable.sh + - name: Run Daemon + run: cargo run --verbose -- daemon & + - name: Switch Mode + run: osascript -e 'tell app "System Events" to tell appearance preferences to set dark mode to not dark mode' + - name: Assert Scripts Did Ran + run: | + sleep 5 + # Once when starting the scripts + echo "scripts ran" >> $HOME/expected.txt + # Once for when we toggled the mode + echo "scripts ran" >> $HOME/expected.txt + diff $HOME/expected.txt $HOME/protocol.txt + + # windows: + # runs-on: windows-latest + # # TODO: Continue + # steps: + # - uses: actions/checkout@v4 + # - name: Build + # run: cargo build --verbose diff --git a/src/main.rs b/src/main.rs index a2ea94e..483c2a2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ use clap::ValueEnum; use crate::platform::macos::MacOSNativeAdapter; #[cfg(target_os = "linux")] -use gsettings::{ +use crate::platform::linux::gsettings::{ freedesktop::FreeDesktopSettingsProvider, gnome::GnomeDesktopSettingsProvider, GSettingsAdapter, SettingsProviderImplementation, }; @@ -43,10 +43,10 @@ fn main() { match implementation { SettingsProviderImplementation::Gnome => { - dark_mode_daemon::cli::run(GSettingsAdapter::::new()); + crate::cli::run(GSettingsAdapter::::new()); } SettingsProviderImplementation::Freedesktop => { - dark_mode_daemon::cli::run(GSettingsAdapter::::new()); + crate::cli::run(GSettingsAdapter::::new()); } }; }