mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-11-02 13:12:50 +00:00
fix(reset): keep the Languages table header under Identity in the candidate-profile skeleton (#613)
04-job-evaluation.md's Language Gate and job-scraper/search-queries.md's query-language generation both read "your Languages table" from 01-candidate-profile.md, but the skeleton /reset wrote left "## Identity" empty, so after a reset /rank and /scrape looked for a table the file no longer had. Carry "### Languages" and the table's header and separator rows in the skeleton. The test derives both rows from the shipped file and pins that the placeholder data row is not reintroduced; it fails on master. Follow-up noted on #532.
This commit is contained in:
1 parent
baf8c68e53
commit
709339758a
3 files changed
+36
No files matched your search
@@ -252,6 +252,28 @@ class TestResetTargetsTheHeadingsTheShippedFilesHave(unittest.TestCase):
|
||||
f"a reset must leave {filename}'s framework_version readable and unchanged",
|
||||
)
|
||||
|
||||
def test_candidate_skeleton_keeps_the_languages_table_under_identity(self):
|
||||
# 04-job-evaluation.md's Language Gate and job-scraper/search-queries.md
|
||||
# both read "your Languages table" from 01-candidate-profile.md. The
|
||||
# skeleton had `## Identity` with nothing under it, so after a reset the
|
||||
# gate and the scraper looked for a table the file no longer had. Both
|
||||
# the `### Languages` heading and the table header row are derived from
|
||||
# the shipped file; the placeholder data row is deliberately not kept.
|
||||
shipped = (SKILL_DIR / "01-candidate-profile.md").read_text(encoding="utf-8")
|
||||
start = shipped.index("### Languages")
|
||||
header_rows = [
|
||||
line for line in shipped[start:].splitlines()[1:]
|
||||
if line.startswith("|")
|
||||
][:2]
|
||||
self.assertEqual(len(header_rows), 2, "the shipped Languages table must have a header and a separator row")
|
||||
block = skeleton_block(self.reset, "01-candidate-profile.md")
|
||||
identity = block[block.index("## Identity"): block.index("## Education")]
|
||||
self.assertIn("### Languages", identity, "the Languages table must sit under Identity, as shipped")
|
||||
for row in header_rows:
|
||||
with self.subTest(row=row):
|
||||
self.assertIn(row, identity)
|
||||
self.assertNotIn("[LANGUAGE]", block, "a reset must not reintroduce a placeholder data row")
|
||||
|
||||
def test_partial_anchors_exist_in_the_files_they_target(self):
|
||||
# (reset.md anchor phrase, file, heading the replacement must re-emit)
|
||||
cases = (
|
||||
|
||||
Reference in new issue
Block a user