Files
galaxy/app/src/workspace/auto_handoff_tests.rs
T

110 lines
2.6 KiB
Rust

use super::{AutoCloudHandoffEligibility, AutoCloudHandoffSkipReason};
fn eligibility() -> AutoCloudHandoffEligibility {
AutoCloudHandoffEligibility {
is_empty: false,
is_in_progress: true,
has_server_conversation_token: true,
is_viewing_shared_session: false,
can_handoff_to_cloud: true,
already_attempted: false,
has_local_orchestrated_children: false,
}
}
#[test]
fn eligible_running_synced_conversation_is_not_skipped() {
assert_eq!(eligibility().skip_reason(), None);
}
#[test]
fn auto_handoff_skips_orchestrator_with_local_children() {
let eligibility = AutoCloudHandoffEligibility {
has_local_orchestrated_children: true,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::OrchestratorWithLocalChildren)
);
}
#[test]
fn auto_handoff_skips_empty_conversations() {
let eligibility = AutoCloudHandoffEligibility {
is_empty: true,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::EmptyConversation)
);
}
#[test]
fn auto_handoff_skips_idle_conversations() {
let eligibility = AutoCloudHandoffEligibility {
is_in_progress: false,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::NotInProgress)
);
}
#[test]
fn auto_handoff_skips_unsynced_conversations() {
let eligibility = AutoCloudHandoffEligibility {
has_server_conversation_token: false,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::MissingServerConversationToken)
);
}
#[test]
fn auto_handoff_skips_shared_session_viewers() {
let eligibility = AutoCloudHandoffEligibility {
is_viewing_shared_session: true,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::SharedSessionViewer)
);
}
#[test]
fn auto_handoff_skips_already_attempted_conversations() {
let eligibility = AutoCloudHandoffEligibility {
already_attempted: true,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::AlreadyAttempted)
);
}
#[test]
fn auto_handoff_skips_conversations_that_cannot_handoff_to_cloud() {
let eligibility = AutoCloudHandoffEligibility {
can_handoff_to_cloud: false,
..eligibility()
};
assert_eq!(
eligibility.skip_reason(),
Some(AutoCloudHandoffSkipReason::CloudHandoffUnavailable)
);
}