MCPcopy Create free account
hub / github.com/IChooseYou/Reclass / testPaddingLineRejectsValueEdit

Method testPaddingLineRejectsValueEdit

tests/test_editor.cpp:755–789  ·  view source on GitHub ↗

── Test: Padding line rejects value editing ──

Source from the content-addressed store, hash-verified

753
754 // ── Test: Padding line rejects value editing ──
755 void testPaddingLineRejectsValueEdit() {
756 m_editor->applyDocument(m_result);
757
758 // Find a Padding line in the composed output
759 int paddingLine = -1;
760 for (int i = 0; i < m_result.meta.size(); i++) {
761 if (m_result.meta[i].nodeKind == NodeKind::Padding &&
762 m_result.meta[i].lineKind == LineKind::Field) {
763 paddingLine = i;
764 break;
765 }
766 }
767 QVERIFY2(paddingLine >= 0, "Should have at least one Padding line in test tree");
768
769 const LineMeta* lm = m_editor->metaForLine(paddingLine);
770 QVERIFY(lm);
771 QCOMPARE(lm->nodeKind, NodeKind::Padding);
772
773 // Value edit on Padding MUST be rejected (the bug fix)
774 QVERIFY2(!m_editor->beginInlineEdit(EditTarget::Value, paddingLine),
775 "Value edit should be rejected on Padding lines");
776 QVERIFY(!m_editor->isEditing());
777
778 // Name edit on Padding SHOULD succeed (ASCII preview column is editable)
779 bool ok = m_editor->beginInlineEdit(EditTarget::Name, paddingLine);
780 QVERIFY2(ok, "Name edit should be allowed on Padding lines (ASCII preview)");
781 QVERIFY(m_editor->isEditing());
782 m_editor->cancelInlineEdit();
783
784 // Type edit on Padding SHOULD succeed (emits popup signal)
785 QSignalSpy typeSpy(m_editor, &RcxEditor::typePickerRequested);
786 ok = m_editor->beginInlineEdit(EditTarget::Type, paddingLine);
787 QVERIFY2(ok, "Type edit should be allowed on Padding lines");
788 QCOMPARE(typeSpy.count(), 1);
789 }
790
791 // ── Test: resolvedSpanFor rejects Value on Padding (defense-in-depth) ──
792 void testPaddingLineRejectsValueSpan() {

Callers

nothing calls this directly

Calls 6

applyDocumentMethod · 0.80
metaForLineMethod · 0.80
beginInlineEditMethod · 0.80
isEditingMethod · 0.80
cancelInlineEditMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected