import pytest

from tools.pin_github_action import ACTION_VERSION_RE


@pytest.mark.parametrize(
    ("s", "expected"),
    (
        ("uses: actions/cache@v1\n", ("actions/cache", "v1")),
        ("uses: actions/cache@v1  # after\n", ("actions/cache", "v1")),
        ("uses: actions/cache@v1# after\n", ("actions/cache", "v1")),
        ("uses: actions/cache@v1.0.0\n", ("actions/cache", "v1.0.0")),
        ("uses: actions/cache@v1.0.0 # after\n", ("actions/cache", "v1.0.0")),
    ),
)
def test_matches(s, expected):
    match = ACTION_VERSION_RE.search(s)
    assert match
    assert (match[1], match[2]) == expected