Fix logic for handling beambreak value in extend

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: Ia87b562faab84ce82c416672902a9ed46e541315
diff --git a/y2024/control_loops/superstructure/superstructure.cc b/y2024/control_loops/superstructure/superstructure.cc
index 56980d5..ff25bbe 100644
--- a/y2024/control_loops/superstructure/superstructure.cc
+++ b/y2024/control_loops/superstructure/superstructure.cc
@@ -175,6 +175,7 @@
           extend_at_retracted) {
         state_ = SuperstructureState::INTAKING;
       }
+
       extend_goal = ExtendStatus::RETRACTED;
       catapult_requested_ = false;
       break;
@@ -197,6 +198,10 @@
 
       break;
     case SuperstructureState::LOADED:
+      if (!position->extend_beambreak() && !position->catapult_beambreak()) {
+        state_ = SuperstructureState::IDLE;
+      }
+
       if (catapult_requested_ == true) {
         state_ = SuperstructureState::MOVING;
         break;
diff --git a/y2024/control_loops/superstructure/superstructure_lib_test.cc b/y2024/control_loops/superstructure/superstructure_lib_test.cc
index ec29ea2..bafe93f 100644
--- a/y2024/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2024/control_loops/superstructure/superstructure_lib_test.cc
@@ -803,7 +803,7 @@
     ASSERT_EQ(builder.Send(goal_builder.Finish()), aos::RawSender::Error::kOk);
   }
 
-  superstructure_plant_.set_extend_beambreak(false);
+  superstructure_plant_.set_extend_beambreak(true);
 
   RunFor(chrono::seconds(10));
   VerifyNearGoal();
@@ -1135,6 +1135,7 @@
   EXPECT_NEAR(superstructure_status_fetcher_->shooter()->turret()->position(),
               simulated_robot_constants_->common()->turret_loading_position(),
               0.01);
+
   {
     auto builder = superstructure_goal_sender_.MakeBuilder();