@@ -768,22 +768,14 @@ TEST_CLASS(AssetEditorViewModel_Tests)
768768 Assert::IsTrue (editor.IsLeaderboard ());
769769 Assert::IsTrue (editor.IsTrigger ());
770770 Assert::IsTrue (editor.HasMeasured ());
771- Assert::IsFalse (editor.HasAssetValidationError ());
772- Assert::IsTrue (editor.HasAssetValidationWarning ());
773- Assert::AreEqual (std::wstring (L" No Start condition" ), editor.GetAssetValidationWarning ());
771+ Assert::IsTrue (editor.HasAssetValidationError ());
772+ Assert::AreEqual (std::wstring (L" Missing start condition" ), editor.GetAssetValidationError ());
774773 Assert::AreEqual (std::wstring (L" Groups:" ), editor.GetGroupsHeaderLabel ());
775774
776775 ra::ui::viewmodels::mocks::MockWindowManager mockWindowManager; // to copy address from memory viewer
777776 editor.Trigger ().NewCondition ();
778- Assert::IsFalse (editor.HasAssetValidationError ());
779- Assert::IsTrue (editor.HasAssetValidationWarning ());
780- Assert::AreEqual (std::wstring (L" No Start condition" ), editor.GetAssetValidationWarning ());
781-
782- // warning is only updated when record is saved to prevent spam when constructing a record
783- leaderboard.Validate ();
784- Assert::IsFalse (editor.HasAssetValidationError ());
785- Assert::IsTrue (editor.HasAssetValidationWarning ());
786- Assert::AreEqual (std::wstring (L" No Cancel condition" ), editor.GetAssetValidationWarning ());
777+ Assert::IsTrue (editor.HasAssetValidationError ());
778+ Assert::AreEqual (std::wstring (L" Missing cancel condition" ), editor.GetAssetValidationError ());
787779 }
788780
789781 TEST_METHOD (TestActivateNewLeaderboard)
@@ -798,9 +790,8 @@ TEST_CLASS(AssetEditorViewModel_Tests)
798790
799791 editor.LoadAsset (leaderboard);
800792
801- Assert::IsFalse (editor.HasAssetValidationError ());
802- Assert::IsTrue (editor.HasAssetValidationWarning ());
803- Assert::AreEqual (std::wstring (L" No Start condition" ), editor.GetAssetValidationWarning ());
793+ Assert::IsTrue (editor.HasAssetValidationError ());
794+ Assert::AreEqual (std::wstring (L" Missing start condition" ), editor.GetAssetValidationError ());
804795
805796 // attempt to start incomplete leaderboard should fail
806797 bool bDialogSeen = false ;
@@ -2462,6 +2453,36 @@ TEST_CLASS(AssetEditorViewModel_Tests)
24622453 Assert::AreEqual (2 , editor.Trigger ().GetSelectedGroupIndex ());
24632454 Assert::AreEqual (nDefaultColor, editor.Trigger ().Conditions ().GetItemAt (0 )->GetRowColor ().ARGB );
24642455 }
2456+
2457+ TEST_METHOD (TestClearOutLeaderboardSubmit)
2458+ {
2459+ AssetEditorViewModelHarness editor;
2460+ editor.mockDesktop .ExpectWindow <ra::ui::viewmodels::MessageBoxViewModel>(
2461+ [](ra::ui::viewmodels::MessageBoxViewModel&)
2462+ {
2463+ return DialogResult::Yes;
2464+ });
2465+
2466+ LeaderboardModel leaderboard;
2467+ leaderboard.SetDefinition (" STA:0x1234=1::CAN:0x1234=2::SUB:0x1234=3::VAL=0x1235" );
2468+ leaderboard.SetValueFormat (ra::data::ValueFormat::Score);
2469+ leaderboard.CreateServerCheckpoint ();
2470+ leaderboard.CreateLocalCheckpoint ();
2471+
2472+ editor.LoadAsset (&leaderboard);
2473+ editor.SetSelectedLeaderboardPart (AssetEditorViewModel::LeaderboardPart::Submit);
2474+
2475+ Assert::AreEqual ({ 1 }, editor.Trigger ().Conditions ().Count ());
2476+ editor.Trigger ().SelectRange (0 , 0 , true );
2477+ editor.Trigger ().RemoveSelectedConditions ();
2478+ Assert::AreEqual ({ 0 }, editor.Trigger ().Conditions ().Count ());
2479+
2480+ editor.SetSelectedLeaderboardPart (AssetEditorViewModel::LeaderboardPart::Cancel);
2481+ Assert::AreEqual ({ 1 }, editor.Trigger ().Conditions ().Count ());
2482+
2483+ editor.SetSelectedLeaderboardPart (AssetEditorViewModel::LeaderboardPart::Submit);
2484+ Assert::AreEqual ({ 0 }, editor.Trigger ().Conditions ().Count ());
2485+ }
24652486};
24662487
24672488} // namespace tests
0 commit comments