first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
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)
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user