Add client-side user setting for agent commit attribution (#9323)
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
use super::{derive_agent_attribution_toggle_state, AgentAttributionToggleState};
|
||||
use crate::workspaces::workspace::AdminEnablementSetting;
|
||||
|
||||
#[test]
|
||||
fn respect_user_setting_returns_user_pref_unlocked() {
|
||||
let state = derive_agent_attribution_toggle_state(
|
||||
&AdminEnablementSetting::RespectUserSetting,
|
||||
true,
|
||||
true,
|
||||
);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: true,
|
||||
is_forced_by_org: false,
|
||||
is_disabled: false,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn respect_user_setting_with_user_off_returns_unchecked_unlocked() {
|
||||
let state = derive_agent_attribution_toggle_state(
|
||||
&AdminEnablementSetting::RespectUserSetting,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: false,
|
||||
is_forced_by_org: false,
|
||||
is_disabled: false,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn team_enable_locks_toggle_on_regardless_of_user_pref() {
|
||||
let state = derive_agent_attribution_toggle_state(&AdminEnablementSetting::Enable, false, true);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: true,
|
||||
is_forced_by_org: true,
|
||||
is_disabled: true,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn team_disable_locks_toggle_off_regardless_of_user_pref() {
|
||||
let state = derive_agent_attribution_toggle_state(&AdminEnablementSetting::Disable, true, true);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: false,
|
||||
is_forced_by_org: true,
|
||||
is_disabled: true,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ai_globally_disabled_marks_toggle_disabled_but_not_forced() {
|
||||
let state = derive_agent_attribution_toggle_state(
|
||||
&AdminEnablementSetting::RespectUserSetting,
|
||||
true,
|
||||
false,
|
||||
);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: true,
|
||||
is_forced_by_org: false,
|
||||
is_disabled: true,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn team_force_takes_precedence_over_global_ai_disabled() {
|
||||
let state =
|
||||
derive_agent_attribution_toggle_state(&AdminEnablementSetting::Enable, false, false);
|
||||
assert_eq!(
|
||||
state,
|
||||
AgentAttributionToggleState {
|
||||
is_enabled: true,
|
||||
is_forced_by_org: true,
|
||||
is_disabled: true,
|
||||
}
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user