Update previous links
This commit is contained in:
@@ -415,6 +415,45 @@ def test_submit_link_stores_cleaned_url_and_public_feed():
|
||||
assert 'alice' in users_response.json()
|
||||
|
||||
|
||||
def test_duplicate_link_updates_comment_tags_and_retriggers_plugins():
|
||||
headers = login_headers()
|
||||
payload = {
|
||||
'title': 'Duplicate candidate',
|
||||
'url': 'https://example.com/duplicate?utm_source=campaign',
|
||||
'comment': 'first comment',
|
||||
'tags': ['#First'],
|
||||
}
|
||||
first = client.post('/api/links', headers=headers, json=payload)
|
||||
assert first.status_code == 201
|
||||
|
||||
with patch('backend.app.api.links.plugin_manager.dispatch', return_value=[]) as dispatch:
|
||||
duplicate = client.post('/api/links', headers=headers, json={
|
||||
**payload,
|
||||
'comment': 'updated comment',
|
||||
'tags': ['#Second'],
|
||||
})
|
||||
assert duplicate.status_code == 200
|
||||
assert duplicate.json()['duplicate'] is True
|
||||
assert duplicate.json()['id'] == first.json()['id']
|
||||
dispatch.assert_called_once()
|
||||
assert dispatch.call_args.args[0]['comment'] == 'updated comment'
|
||||
assert dispatch.call_args.args[0]['tags'] == ['#Second']
|
||||
feed_item = next(item for item in client.get('/api/public/feed').json() if item['id'] == first.json()['id'])
|
||||
assert feed_item['comment'] == 'updated comment'
|
||||
assert feed_item['tags'] == ['#Second']
|
||||
|
||||
|
||||
def test_duplicate_link_check_is_authenticated_and_detects_existing_entry():
|
||||
headers = login_headers()
|
||||
payload = {'title': 'Check candidate', 'url': 'https://example.com/check-candidate'}
|
||||
assert client.get('/api/links/check', params=payload).status_code == 401
|
||||
created = client.post('/api/links', headers=headers, json=payload)
|
||||
assert created.status_code == 201
|
||||
check = client.get('/api/links/check', headers=headers, params=payload)
|
||||
assert check.status_code == 200
|
||||
assert check.json()['exists'] is True
|
||||
|
||||
|
||||
def test_links_support_tags_and_tag_filtering():
|
||||
headers = login_headers()
|
||||
response = client.post('/api/links', headers=headers, json={
|
||||
|
||||
Reference in New Issue
Block a user