一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
360 行
16 KiB
JSON
360 行
16 KiB
JSON
{
|
|
"issue": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/13593",
|
|
"repository_url": "https://api.github.com/repos/laurent22/joplin",
|
|
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/13593/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/13593/comments",
|
|
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/13593/events",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593",
|
|
"id": 3576699459,
|
|
"node_id": "PR_kwDOBLftOs6w7Nrt",
|
|
"number": 13593,
|
|
"title": "Chore: Testing: Add test coverage (MC/DC) for Note.mustHandleConflict",
|
|
"user": {
|
|
"login": "mariadenis",
|
|
"id": 127852640,
|
|
"node_id": "U_kgDOB57gYA",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/127852640?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mariadenis",
|
|
"html_url": "https://github.com/mariadenis",
|
|
"followers_url": "https://api.github.com/users/mariadenis/followers",
|
|
"following_url": "https://api.github.com/users/mariadenis/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mariadenis/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mariadenis/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mariadenis/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mariadenis/orgs",
|
|
"repos_url": "https://api.github.com/users/mariadenis/repos",
|
|
"events_url": "https://api.github.com/users/mariadenis/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mariadenis/received_events",
|
|
"type": "User",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"labels": [],
|
|
"state": "closed",
|
|
"locked": false,
|
|
"assignee": null,
|
|
"assignees": [],
|
|
"milestone": null,
|
|
"comments": 4,
|
|
"created_at": "2025-10-31T22:35:40Z",
|
|
"updated_at": "2025-11-15T14:18:57Z",
|
|
"closed_at": "2025-11-15T09:12:36Z",
|
|
"author_association": "NONE",
|
|
"active_lock_reason": null,
|
|
"draft": false,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/pulls/13593",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593",
|
|
"diff_url": "https://github.com/laurent22/joplin/pull/13593.diff",
|
|
"patch_url": "https://github.com/laurent22/joplin/pull/13593.patch",
|
|
"merged_at": null
|
|
},
|
|
"body": "### Description\r\n\r\nThis PR introduces a unit test suite for the `Note.mustHandleConflict` method (located in `packages/lib/models/Note.ts`), which previously had no dedicated test coverage.\r\n\r\n#### What this PR does:\r\n\r\nThis PR follows the contribution guidelines by adding automated tests for existing business logic.\r\n\r\nThe `mustHandleConflict` method is responsible for critical business logic during synchronization, deciding when a note conflict should be created. The lack of tests represented a risk of regression.\r\n\r\n#### Explanation of Changes:\r\n\r\n1. **MC/DC Test Creation:** Six new test cases were created in a separate file (`NoteConflict.test.js`) to ensure compatibility with the `@joplin/lib` sub-package's test environment.\r\n2. **Logic Coverage:** The tests cover all 4 decisions within the method, including the independence pairs for the multi-condition decision (line 981), as required by the MC/DC criterion.\r\n3. **Focus:** This PR is focused on this single issue, as guided by the contribution rules.\r\n\r\n#### Manual Testing Plan (for the reviewer):\r\n\r\nWhile the automated tests validate the logic, the following manual steps can be used to confirm execution:\r\n\r\n1. **Verify Test Execution:**\r\n > Run the command:\r\n > ```bash\r\n > yarn workspace @joplin/lib test -- --coverage NoteConflict.test.js\r\n > ```\r\n > **Expected Result:** All 6 tests should pass successfully.\r\n\r\n2. **Verify Coverage:**\r\n > Open the generated coverage report at `packages/lib/coverage/lcov-report/index.html`.\r\n >\r\n > Navigate to `packages/lib/models/Note.ts`.\r\n >\r\n > **Expected Result:** A measurable increase in the \"Branches\" and \"Functions\" coverage percentages for the `Note.ts` file will be visible, proving the effectiveness of the new tests.",
|
|
"closed_by": {
|
|
"login": "laurent22",
|
|
"id": 1285584,
|
|
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/laurent22",
|
|
"html_url": "https://github.com/laurent22",
|
|
"followers_url": "https://api.github.com/users/laurent22/followers",
|
|
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
|
"repos_url": "https://api.github.com/users/laurent22/repos",
|
|
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
|
"type": "User",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"reactions": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/13593/reactions",
|
|
"total_count": 0,
|
|
"+1": 0,
|
|
"-1": 0,
|
|
"laugh": 0,
|
|
"hooray": 0,
|
|
"confused": 0,
|
|
"heart": 0,
|
|
"rocket": 0,
|
|
"eyes": 0
|
|
},
|
|
"timeline_url": "https://api.github.com/repos/laurent22/joplin/issues/13593/timeline",
|
|
"performed_via_github_app": null,
|
|
"state_reason": null
|
|
},
|
|
"comments": [
|
|
{
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3475086575",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593#issuecomment-3475086575",
|
|
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/13593",
|
|
"id": 3475086575,
|
|
"node_id": "IC_kwDOBLftOs7PIZzv",
|
|
"user": {
|
|
"login": "github-actions[bot]",
|
|
"id": 41898282,
|
|
"node_id": "MDM6Qm90NDE4OTgyODI=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
|
|
"html_url": "https://github.com/apps/github-actions",
|
|
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
|
|
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
|
|
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
|
|
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
|
|
"type": "Bot",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2025-10-31T22:35:52Z",
|
|
"updated_at": "2025-11-15T14:18:57Z",
|
|
"body": "****CLA Assistant Lite bot**** All contributors have signed the CLA ✍️ ✅",
|
|
"author_association": "CONTRIBUTOR",
|
|
"reactions": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3475086575/reactions",
|
|
"total_count": 0,
|
|
"+1": 0,
|
|
"-1": 0,
|
|
"laugh": 0,
|
|
"hooray": 0,
|
|
"confused": 0,
|
|
"heart": 0,
|
|
"rocket": 0,
|
|
"eyes": 0
|
|
},
|
|
"performed_via_github_app": {
|
|
"id": 15368,
|
|
"client_id": "Iv1.05c79e9ad1f6bdfa",
|
|
"slug": "github-actions",
|
|
"node_id": "MDM6QXBwMTUzNjg=",
|
|
"owner": {
|
|
"login": "github",
|
|
"id": 9919,
|
|
"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/github",
|
|
"html_url": "https://github.com/github",
|
|
"followers_url": "https://api.github.com/users/github/followers",
|
|
"following_url": "https://api.github.com/users/github/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/github/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/github/orgs",
|
|
"repos_url": "https://api.github.com/users/github/repos",
|
|
"events_url": "https://api.github.com/users/github/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/github/received_events",
|
|
"type": "Organization",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"name": "GitHub Actions",
|
|
"description": "Automate your workflow from idea to production",
|
|
"external_url": "https://help.github.com/en/actions",
|
|
"html_url": "https://github.com/apps/github-actions",
|
|
"created_at": "2018-07-30T09:30:17Z",
|
|
"updated_at": "2025-11-12T15:38:39Z",
|
|
"permissions": {
|
|
"actions": "write",
|
|
"administration": "read",
|
|
"artifact_metadata": "write",
|
|
"attestations": "write",
|
|
"checks": "write",
|
|
"contents": "write",
|
|
"deployments": "write",
|
|
"discussions": "write",
|
|
"issues": "write",
|
|
"merge_queues": "write",
|
|
"metadata": "read",
|
|
"models": "read",
|
|
"packages": "write",
|
|
"pages": "write",
|
|
"pull_requests": "write",
|
|
"repository_hooks": "write",
|
|
"repository_projects": "write",
|
|
"security_events": "write",
|
|
"statuses": "write",
|
|
"vulnerability_alerts": "read"
|
|
},
|
|
"events": [
|
|
"branch_protection_rule",
|
|
"check_run",
|
|
"check_suite",
|
|
"create",
|
|
"delete",
|
|
"deployment",
|
|
"deployment_status",
|
|
"discussion",
|
|
"discussion_comment",
|
|
"fork",
|
|
"gollum",
|
|
"issues",
|
|
"issue_comment",
|
|
"label",
|
|
"merge_group",
|
|
"milestone",
|
|
"page_build",
|
|
"public",
|
|
"pull_request",
|
|
"pull_request_review",
|
|
"pull_request_review_comment",
|
|
"push",
|
|
"registry_package",
|
|
"release",
|
|
"repository",
|
|
"repository_dispatch",
|
|
"status",
|
|
"watch",
|
|
"workflow_dispatch",
|
|
"workflow_run"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3475112740",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593#issuecomment-3475112740",
|
|
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/13593",
|
|
"id": 3475112740,
|
|
"node_id": "IC_kwDOBLftOs7PIgMk",
|
|
"user": {
|
|
"login": "mariadenis",
|
|
"id": 127852640,
|
|
"node_id": "U_kgDOB57gYA",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/127852640?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mariadenis",
|
|
"html_url": "https://github.com/mariadenis",
|
|
"followers_url": "https://api.github.com/users/mariadenis/followers",
|
|
"following_url": "https://api.github.com/users/mariadenis/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mariadenis/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mariadenis/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mariadenis/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mariadenis/orgs",
|
|
"repos_url": "https://api.github.com/users/mariadenis/repos",
|
|
"events_url": "https://api.github.com/users/mariadenis/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mariadenis/received_events",
|
|
"type": "User",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2025-10-31T22:47:35Z",
|
|
"updated_at": "2025-10-31T22:47:35Z",
|
|
"body": "I have read the CLA Document and I hereby sign the CLA",
|
|
"author_association": "NONE",
|
|
"reactions": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3475112740/reactions",
|
|
"total_count": 0,
|
|
"+1": 0,
|
|
"-1": 0,
|
|
"laugh": 0,
|
|
"hooray": 0,
|
|
"confused": 0,
|
|
"heart": 0,
|
|
"rocket": 0,
|
|
"eyes": 0
|
|
},
|
|
"performed_via_github_app": null
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3480011962",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593#issuecomment-3480011962",
|
|
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/13593",
|
|
"id": 3480011962,
|
|
"node_id": "IC_kwDOBLftOs7PbMS6",
|
|
"user": {
|
|
"login": "laurent22",
|
|
"id": 1285584,
|
|
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/laurent22",
|
|
"html_url": "https://github.com/laurent22",
|
|
"followers_url": "https://api.github.com/users/laurent22/followers",
|
|
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
|
"repos_url": "https://api.github.com/users/laurent22/repos",
|
|
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
|
"type": "User",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2025-11-03T11:16:45Z",
|
|
"updated_at": "2025-11-03T11:16:45Z",
|
|
"body": "@mariadenis, please confirm if you can address the requested changes.\r\n\r\nAlso the reason for creating this PR is not clear. Just for information (because the PR seems a bit random), we don't participate in neither Hacktobefest nor GSoC.",
|
|
"author_association": "OWNER",
|
|
"reactions": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3480011962/reactions",
|
|
"total_count": 0,
|
|
"+1": 0,
|
|
"-1": 0,
|
|
"laugh": 0,
|
|
"hooray": 0,
|
|
"confused": 0,
|
|
"heart": 0,
|
|
"rocket": 0,
|
|
"eyes": 0
|
|
},
|
|
"performed_via_github_app": null
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3536236514",
|
|
"html_url": "https://github.com/laurent22/joplin/pull/13593#issuecomment-3536236514",
|
|
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/13593",
|
|
"id": 3536236514,
|
|
"node_id": "IC_kwDOBLftOs7Sxq_i",
|
|
"user": {
|
|
"login": "laurent22",
|
|
"id": 1285584,
|
|
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/laurent22",
|
|
"html_url": "https://github.com/laurent22",
|
|
"followers_url": "https://api.github.com/users/laurent22/followers",
|
|
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/laurent22/orgs",
|
|
"repos_url": "https://api.github.com/users/laurent22/repos",
|
|
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/laurent22/received_events",
|
|
"type": "User",
|
|
"user_view_type": "public",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2025-11-15T09:12:36Z",
|
|
"updated_at": "2025-11-15T09:12:36Z",
|
|
"body": "Closing stale PR. Please let me us know if you'd like to complete it and we'll reopen",
|
|
"author_association": "OWNER",
|
|
"reactions": {
|
|
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/3536236514/reactions",
|
|
"total_count": 0,
|
|
"+1": 0,
|
|
"-1": 0,
|
|
"laugh": 0,
|
|
"hooray": 0,
|
|
"confused": 0,
|
|
"heart": 0,
|
|
"rocket": 0,
|
|
"eyes": 0
|
|
},
|
|
"performed_via_github_app": null
|
|
}
|
|
]
|
|
} |