| # Copyright 2026 The Fuchsia Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Tests for the checks in //scripts/shac/docs.star.""" | |
| load("//scripts/shac/docs.star", "_codelinks") | |
| # Split up so that the codelinks check doesn't flag this file. | |
| _GOB_DOCS = "https://fuchsia.googlesource.com" + "/fuchsia/+/refs/heads/main/docs/" | |
| _FUCHSIA_DEV = "https://fuchsia.dev/fuchsia-src/" | |
| def test_codelinks(): | |
| res = testing.run(_codelinks, files = { | |
| "src/foo.cc": "// See %sfoo/bar.md.\n" % _GOB_DOCS, | |
| }) | |
| url_len = len(_GOB_DOCS + "foo/bar.md") | |
| asserts.eq(res.findings, ( | |
| testing.finding( | |
| level = "warning", | |
| message = ( | |
| "Documentation links should point to fuchsia.dev rather than " + | |
| "fuchsia.googlesource.com. Consider changing this to %sfoo/bar." % _FUCHSIA_DEV | |
| ), | |
| filepath = "src/foo.cc", | |
| line = 1, | |
| col = 8, | |
| end_col = 8 + url_len, | |
| replacements = [_FUCHSIA_DEV + "foo/bar"], | |
| ), | |
| )) | |
| asserts.eq(res.files["src/foo.cc"], "// See %sfoo/bar.\n" % _FUCHSIA_DEV) | |
| def test_codelinks_ignores_docs_dir(): | |
| res = testing.run(_codelinks, files = { | |
| "docs/foo.md": "See %sfoo/bar.md.\n" % _GOB_DOCS, | |
| }) | |
| asserts.eq(res.findings, ()) | |
| def test_codelinks_fuchsia_dev(): | |
| res = testing.run(_codelinks, files = { | |
| "src/foo.cc": "// See %sfoo/bar.\n" % _FUCHSIA_DEV, | |
| }) | |
| asserts.eq(res.findings, ()) |