@@ -942,6 +942,46 @@ def test_work_import_dismiss_marks_import_not_pending(tmp_path, monkeypatch, cap
942942 assert payload ["imports" ][0 ]["dismiss_reason" ] == "not actionable"
943943
944944
945+ def test_work_import_promote_rejects_non_pending_import (tmp_path , monkeypatch , capsys ):
946+ _init_git_repo (tmp_path )
947+ monkeypatch .setattr (
948+ work_cmd ,
949+ "_now" ,
950+ lambda : datetime (2026 , 5 , 26 , 12 , 0 , 0 , tzinfo = timezone .utc ),
951+ )
952+ assert work_cmd .import_add (target = tmp_path , text = "Dismissed scanner item" , source = "discord" ) == 0
953+ import_id = capsys .readouterr ().out .split ("import: " , 1 )[1 ].splitlines ()[0 ]
954+ assert work_cmd .import_dismiss (target = tmp_path , import_id = import_id ) == 0
955+ capsys .readouterr ()
956+
957+ assert work_cmd .import_promote (target = tmp_path , import_id = import_id ) == 2
958+ assert "import is not pending" in capsys .readouterr ().err
959+
960+ imports = json .loads ((tmp_path / ".brigade" / "work" / "imports" / "inbox.jsonl" ).read_text ().splitlines ()[0 ])
961+ assert imports ["status" ] == "dismissed"
962+ assert not (tmp_path / ".brigade" / "work" / "tasks.json" ).exists ()
963+
964+
965+ def test_work_import_dismiss_rejects_non_pending_import (tmp_path , monkeypatch , capsys ):
966+ _init_git_repo (tmp_path )
967+ monkeypatch .setattr (
968+ work_cmd ,
969+ "_now" ,
970+ lambda : datetime (2026 , 5 , 26 , 12 , 0 , 0 , tzinfo = timezone .utc ),
971+ )
972+ assert work_cmd .import_add (target = tmp_path , text = "Promote scanner item" , source = "slack" ) == 0
973+ import_id = capsys .readouterr ().out .split ("import: " , 1 )[1 ].splitlines ()[0 ]
974+ assert work_cmd .import_promote (target = tmp_path , import_id = import_id ) == 0
975+ capsys .readouterr ()
976+
977+ assert work_cmd .import_dismiss (target = tmp_path , import_id = import_id , reason = "late cleanup" ) == 2
978+ assert "import is not pending" in capsys .readouterr ().err
979+
980+ payload = json .loads ((tmp_path / ".brigade" / "work" / "imports" / "inbox.jsonl" ).read_text ().splitlines ()[0 ])
981+ assert payload ["status" ] == "promoted"
982+ assert "dismiss_reason" not in payload
983+
984+
945985def test_work_brief_includes_pending_imports (tmp_path , monkeypatch , capsys ):
946986 _init_git_repo (tmp_path )
947987 monkeypatch .setattr (
0 commit comments