mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Treat ChatGPT hc plan as Enterprise (#15789)
This commit is contained in:
1 parent
b6524514c1
commit
eee692e351
3 files changed
+45
-1
No files matched your search
@@ -1153,6 +1153,34 @@ mod tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn fetch_cloud_requirements_allows_hc_plan_as_enterprise() {
|
||||||
|
let codex_home = tempdir().expect("tempdir");
|
||||||
|
let service = CloudRequirementsService::new(
|
||||||
|
auth_manager_with_plan("hc"),
|
||||||
|
Arc::new(StaticFetcher {
|
||||||
|
contents: Some("allowed_approval_policies = [\"never\"]".to_string()),
|
||||||
|
}),
|
||||||
|
codex_home.path().to_path_buf(),
|
||||||
|
CLOUD_REQUIREMENTS_TIMEOUT,
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
service.fetch().await,
|
||||||
|
Ok(Some(ConfigRequirementsToml {
|
||||||
|
allowed_approval_policies: Some(vec![AskForApproval::Never]),
|
||||||
|
allowed_sandbox_modes: None,
|
||||||
|
allowed_web_search_modes: None,
|
||||||
|
guardian_developer_instructions: None,
|
||||||
|
feature_requirements: None,
|
||||||
|
mcp_servers: None,
|
||||||
|
apps: None,
|
||||||
|
rules: None,
|
||||||
|
enforce_residency: None,
|
||||||
|
network: None,
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn fetch_cloud_requirements_handles_missing_contents() {
|
async fn fetch_cloud_requirements_handles_missing_contents() {
|
||||||
let result = parse_for_fetch(None);
|
let result = parse_for_fetch(None);
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ impl PlanType {
|
|||||||
"pro" => Self::Known(KnownPlan::Pro),
|
"pro" => Self::Known(KnownPlan::Pro),
|
||||||
"team" => Self::Known(KnownPlan::Team),
|
"team" => Self::Known(KnownPlan::Team),
|
||||||
"business" => Self::Known(KnownPlan::Business),
|
"business" => Self::Known(KnownPlan::Business),
|
||||||
"enterprise" => Self::Known(KnownPlan::Enterprise),
|
"enterprise" | "hc" => Self::Known(KnownPlan::Enterprise),
|
||||||
"education" | "edu" => Self::Known(KnownPlan::Edu),
|
"education" | "edu" => Self::Known(KnownPlan::Edu),
|
||||||
_ => Self::Unknown(raw.to_string()),
|
_ => Self::Unknown(raw.to_string()),
|
||||||
}
|
}
|
||||||
@@ -88,6 +88,7 @@ pub enum KnownPlan {
|
|||||||
Pro,
|
Pro,
|
||||||
Team,
|
Team,
|
||||||
Business,
|
Business,
|
||||||
|
#[serde(alias = "hc")]
|
||||||
Enterprise,
|
Enterprise,
|
||||||
Edu,
|
Edu,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,21 @@ fn id_token_info_parses_go_plan() {
|
|||||||
assert_eq!(info.get_chatgpt_plan_type().as_deref(), Some("Go"));
|
assert_eq!(info.get_chatgpt_plan_type().as_deref(), Some("Go"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn id_token_info_parses_hc_plan_as_enterprise() {
|
||||||
|
let fake_jwt = fake_jwt(serde_json::json!({
|
||||||
|
"email": "user@example.com",
|
||||||
|
"https://api.openai.com/auth": {
|
||||||
|
"chatgpt_plan_type": "hc"
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
let info = parse_chatgpt_jwt_claims(&fake_jwt).expect("should parse");
|
||||||
|
assert_eq!(info.email.as_deref(), Some("user@example.com"));
|
||||||
|
assert_eq!(info.get_chatgpt_plan_type().as_deref(), Some("Enterprise"));
|
||||||
|
assert_eq!(info.is_workspace_account(), true);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn id_token_info_handles_missing_fields() {
|
fn id_token_info_handles_missing_fields() {
|
||||||
let fake_jwt = fake_jwt(serde_json::json!({ "sub": "123" }));
|
let fake_jwt = fake_jwt(serde_json::json!({ "sub": "123" }));
|
||||||
|
|||||||
Reference in new issue
Block a user