We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Test vectors
# Description
This PR adds tests for the vectors layer, improves the doc strings and cleans up the code a tiny bit, but doesn't change any functionality.

One question is - should the input parameters be 
`edge_width`, `edge_color`, and `length` for the width, color, and the multiplicative length factor for the vectors or should they be something else. They used to just be `width`, `color`, and `length` but I added `edge_` to make the parameters the same as for the `points` and `shapes` layer, though you could argue that for the `points` layer the parameters do different things and that in the vectors layer we don't have a `face` and an `edge` so it is just confusing. I'm open to suggestions - personally I like the consistency - but we can change it. Thoughts @bryantChhun @kevinyamauchi @jni?
 
## Type of change
<!-- Please delete options that are not relevant. -->
- [x] Bug-fix (non-breaking change which fixes an issue)

# How has this been tested?
<!-- Please describe the tests that you ran to verify your changes. -->
- [x] adds `napari/layers/vectors/tests/test_vectors.py`

## Final checklist:
- [x] My PR is the minimum possible work for the desired functionality
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my feature works


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `napari/_app_model/actions/_view_actions.py`
Content:
```
1 """Actions related to the 'View' menu that do not require Qt.
2 
3 View actions that do require Qt should go in
4 `napari/_qt/_qapp_model/qactions/_view.py`.
5 """
6 
7 from app_model.types import Action, ToggleRule
8 
9 from napari._app_model.actions._toggle_action import ViewerToggleAction
10 from napari._app_model.constants import CommandId, MenuGroup, MenuId
11 from napari.settings import get_settings
12 
13 VIEW_ACTIONS: list[Action] = []
14 MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}
15 
16 for cmd, viewer_attr, sub_attr in (
17     (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),
18     (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),
19     (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),
20     (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),
21     (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),
22     (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),
23     (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),
24     (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),
25 ):
26     VIEW_ACTIONS.append(
27         ViewerToggleAction(
28             id=cmd,
29             title=cmd.command_title,
30             viewer_attribute=viewer_attr,
31             sub_attribute=sub_attr,
32             menus=[{'id': MENUID_DICT[viewer_attr]}],
33         )
34     )
35 
36 
37 def _tooltip_visibility_toggle() -> None:
38     settings = get_settings().appearance
39     settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility
40 
41 
42 def _get_current_tooltip_visibility() -> bool:
43     return get_settings().appearance.layer_tooltip_visibility
44 
45 
46 VIEW_ACTIONS.extend(
47     [
48         # TODO: this could be made into a toggle setting Action subclass
49         # using a similar pattern to the above ViewerToggleAction classes
50         Action(
51             id=CommandId.TOGGLE_LAYER_TOOLTIPS,
52             title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,
53             menus=[
54                 {
55                     'id': MenuId.MENUBAR_VIEW,
56                     'group': MenuGroup.RENDER,
57                     'order': 10,
58                 }
59             ],
60             callback=_tooltip_visibility_toggle,
61             toggled=ToggleRule(get_current=_get_current_tooltip_visibility),
62         ),
63     ]
64 )
65
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/napari/_app_model/actions/_view_actions.py b/napari/_app_model/actions/_view_actions.py
deleted file mode 100644
--- a/napari/_app_model/actions/_view_actions.py
+++ /dev/null
@@ -1,64 +0,0 @@
-"""Actions related to the 'View' menu that do not require Qt.
-
-View actions that do require Qt should go in
-`napari/_qt/_qapp_model/qactions/_view.py`.
-"""
-
-from app_model.types import Action, ToggleRule
-
-from napari._app_model.actions._toggle_action import ViewerToggleAction
-from napari._app_model.constants import CommandId, MenuGroup, MenuId
-from napari.settings import get_settings
-
-VIEW_ACTIONS: list[Action] = []
-MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}
-
-for cmd, viewer_attr, sub_attr in (
-    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),
-    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),
-    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),
-    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),
-    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),
-):
-    VIEW_ACTIONS.append(
-        ViewerToggleAction(
-            id=cmd,
-            title=cmd.command_title,
-            viewer_attribute=viewer_attr,
-            sub_attribute=sub_attr,
-            menus=[{'id': MENUID_DICT[viewer_attr]}],
-        )
-    )
-
-
-def _tooltip_visibility_toggle() -> None:
-    settings = get_settings().appearance
-    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility
-
-
-def _get_current_tooltip_visibility() -> bool:
-    return get_settings().appearance.layer_tooltip_visibility
-
-
-VIEW_ACTIONS.extend(
-    [
-        # TODO: this could be made into a toggle setting Action subclass
-        # using a similar pattern to the above ViewerToggleAction classes
-        Action(
-            id=CommandId.TOGGLE_LAYER_TOOLTIPS,
-            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,
-            menus=[
-                {
-                    'id': MenuId.MENUBAR_VIEW,
-                    'group': MenuGroup.RENDER,
-                    'order': 10,
-                }
-            ],
-            callback=_tooltip_visibility_toggle,
-            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),
-        ),
-    ]
-)

{"golden_diff": "diff --git a/napari/_app_model/actions/_view_actions.py b/napari/_app_model/actions/_view_actions.py\ndeleted file mode 100644\n--- a/napari/_app_model/actions/_view_actions.py\n+++ /dev/null\n@@ -1,64 +0,0 @@\n-\"\"\"Actions related to the 'View' menu that do not require Qt.\n-\n-View actions that do require Qt should go in\n-`napari/_qt/_qapp_model/qactions/_view.py`.\n-\"\"\"\n-\n-from app_model.types import Action, ToggleRule\n-\n-from napari._app_model.actions._toggle_action import ViewerToggleAction\n-from napari._app_model.constants import CommandId, MenuGroup, MenuId\n-from napari.settings import get_settings\n-\n-VIEW_ACTIONS: list[Action] = []\n-MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}\n-\n-for cmd, viewer_attr, sub_attr in (\n-    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),\n-    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),\n-    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),\n-    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),\n-    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),\n-):\n-    VIEW_ACTIONS.append(\n-        ViewerToggleAction(\n-            id=cmd,\n-            title=cmd.command_title,\n-            viewer_attribute=viewer_attr,\n-            sub_attribute=sub_attr,\n-            menus=[{'id': MENUID_DICT[viewer_attr]}],\n-        )\n-    )\n-\n-\n-def _tooltip_visibility_toggle() -> None:\n-    settings = get_settings().appearance\n-    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility\n-\n-\n-def _get_current_tooltip_visibility() -> bool:\n-    return get_settings().appearance.layer_tooltip_visibility\n-\n-\n-VIEW_ACTIONS.extend(\n-    [\n-        # TODO: this could be made into a toggle setting Action subclass\n-        # using a similar pattern to the above ViewerToggleAction classes\n-        Action(\n-            id=CommandId.TOGGLE_LAYER_TOOLTIPS,\n-            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,\n-            menus=[\n-                {\n-                    'id': MenuId.MENUBAR_VIEW,\n-                    'group': MenuGroup.RENDER,\n-                    'order': 10,\n-                }\n-            ],\n-            callback=_tooltip_visibility_toggle,\n-            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),\n-        ),\n-    ]\n-)\n", "issue": "Test vectors\n# Description\r\nThis PR adds tests for the vectors layer, improves the doc strings and cleans up the code a tiny bit, but doesn't change any functionality.\r\n\r\nOne question is - should the input parameters be \r\n`edge_width`, `edge_color`, and `length` for the width, color, and the multiplicative length factor for the vectors or should they be something else. They used to just be `width`, `color`, and `length` but I added `edge_` to make the parameters the same as for the `points` and `shapes` layer, though you could argue that for the `points` layer the parameters do different things and that in the vectors layer we don't have a `face` and an `edge` so it is just confusing. I'm open to suggestions - personally I like the consistency - but we can change it. Thoughts @bryantChhun @kevinyamauchi @jni?\r\n \r\n## Type of change\r\n<!-- Please delete options that are not relevant. -->\r\n- [x] Bug-fix (non-breaking change which fixes an issue)\r\n\r\n# How has this been tested?\r\n<!-- Please describe the tests that you ran to verify your changes. -->\r\n- [x] adds `napari/layers/vectors/tests/test_vectors.py`\r\n\r\n## Final checklist:\r\n- [x] My PR is the minimum possible work for the desired functionality\r\n- [x] I have commented my code, particularly in hard-to-understand areas\r\n- [x] I have made corresponding changes to the documentation\r\n- [x] I have added tests that prove my fix is effective or that my feature works\r\n\n", "before_files": [{"content": "\"\"\"Actions related to the 'View' menu that do not require Qt.\n\nView actions that do require Qt should go in\n`napari/_qt/_qapp_model/qactions/_view.py`.\n\"\"\"\n\nfrom app_model.types import Action, ToggleRule\n\nfrom napari._app_model.actions._toggle_action import ViewerToggleAction\nfrom napari._app_model.constants import CommandId, MenuGroup, MenuId\nfrom napari.settings import get_settings\n\nVIEW_ACTIONS: list[Action] = []\nMENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}\n\nfor cmd, viewer_attr, sub_attr in (\n    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),\n    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),\n    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),\n    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),\n    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),\n):\n    VIEW_ACTIONS.append(\n        ViewerToggleAction(\n            id=cmd,\n            title=cmd.command_title,\n            viewer_attribute=viewer_attr,\n            sub_attribute=sub_attr,\n            menus=[{'id': MENUID_DICT[viewer_attr]}],\n        )\n    )\n\n\ndef _tooltip_visibility_toggle() -> None:\n    settings = get_settings().appearance\n    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility\n\n\ndef _get_current_tooltip_visibility() -> bool:\n    return get_settings().appearance.layer_tooltip_visibility\n\n\nVIEW_ACTIONS.extend(\n    [\n        # TODO: this could be made into a toggle setting Action subclass\n        # using a similar pattern to the above ViewerToggleAction classes\n        Action(\n            id=CommandId.TOGGLE_LAYER_TOOLTIPS,\n            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,\n            menus=[\n                {\n                    'id': MenuId.MENUBAR_VIEW,\n                    'group': MenuGroup.RENDER,\n                    'order': 10,\n                }\n            ],\n            callback=_tooltip_visibility_toggle,\n            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),\n        ),\n    ]\n)\n", "path": "napari/_app_model/actions/_view_actions.py"}], "after_files": [{"content": null, "path": "napari/_app_model/actions/_view_actions.py"}]}