From dd0d5681cd16de084c3e5ced355b58bdbd20668c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20F=C3=B6hring?= Date: Sat, 30 Mar 2019 18:37:58 +0100 Subject: [PATCH] Add test reproducing #646 --- test/credo/code/charlists_test.exs | 38 ++++++++++++++++++++++++++++++ test/credo/code/heredocs_test.exs | 38 ++++++++++++++++++++++++++++++ test/credo/code/sigils_test.exs | 38 ++++++++++++++++++++++++++++++ test/credo/code/strings_test.exs | 38 ++++++++++++++++++++++++++++++ 4 files changed, 152 insertions(+) diff --git a/test/credo/code/charlists_test.exs b/test/credo/code/charlists_test.exs index e33a6ff34..06735faf9 100644 --- a/test/credo/code/charlists_test.exs +++ b/test/credo/code/charlists_test.exs @@ -32,4 +32,42 @@ defmodule Credo.Code.CharlistsTest do assert expected == source |> Charlists.replace_with_spaces() end + + test "it should not modify commented out code" do + source = """ + defmodule Foo do + defmodule Bar do + # @doc \"\"\" + # Reassign a student to a discussion group. + # This will un-assign student from the current discussion group + # \"\"\" + # def assign_group(leader = %User{}, student = %User{}) do + # cond do + # leader.role == :student -> + # {:error, :invalid} + # + # student.role != :student -> + # {:error, :invalid} + # + # true -> + # Repo.transaction(fn -> + # {:ok, _} = unassign_group(student) + # + # %Group{} + # |> Group.changeset(%{}) + # |> put_assoc(:leader, leader) + # |> put_assoc(:student, student) + # |> Repo.insert!() + # end) + # end + # end + def baz, do: 123 + end + end + """ + + expected = source + + assert expected == source |> Charlists.replace_with_spaces(".") + end end diff --git a/test/credo/code/heredocs_test.exs b/test/credo/code/heredocs_test.exs index 74fde35c3..4ceee126d 100644 --- a/test/credo/code/heredocs_test.exs +++ b/test/credo/code/heredocs_test.exs @@ -114,4 +114,42 @@ defmodule Credo.Code.HeredocsTest do result = source |> Heredocs.replace_with_spaces(".") assert expected == result end + + test "it should not modify commented out code" do + source = """ + defmodule Foo do + defmodule Bar do + # @doc \"\"\" + # Reassign a student to a discussion group. + # This will un-assign student from the current discussion group + # \"\"\" + # def assign_group(leader = %User{}, student = %User{}) do + # cond do + # leader.role == :student -> + # {:error, :invalid} + # + # student.role != :student -> + # {:error, :invalid} + # + # true -> + # Repo.transaction(fn -> + # {:ok, _} = unassign_group(student) + # + # %Group{} + # |> Group.changeset(%{}) + # |> put_assoc(:leader, leader) + # |> put_assoc(:student, student) + # |> Repo.insert!() + # end) + # end + # end + def baz, do: 123 + end + end + """ + + expected = source + + assert expected == source |> Heredocs.replace_with_spaces(".") + end end diff --git a/test/credo/code/sigils_test.exs b/test/credo/code/sigils_test.exs index ab965e47e..820e97d15 100644 --- a/test/credo/code/sigils_test.exs +++ b/test/credo/code/sigils_test.exs @@ -176,4 +176,42 @@ defmodule Credo.Code.SigilsTest do assert expected == Sigils.replace_with_spaces(source, "") end + + test "it should not modify commented out code" do + source = """ + defmodule Foo do + defmodule Bar do + # @doc \"\"\" + # Reassign a student to a discussion group. + # This will un-assign student from the current discussion group + # \"\"\" + # def assign_group(leader = %User{}, student = %User{}) do + # cond do + # leader.role == :student -> + # {:error, :invalid} + # + # student.role != :student -> + # {:error, :invalid} + # + # true -> + # Repo.transaction(fn -> + # {:ok, _} = unassign_group(student) + # + # %Group{} + # |> Group.changeset(%{}) + # |> put_assoc(:leader, leader) + # |> put_assoc(:student, student) + # |> Repo.insert!() + # end) + # end + # end + def baz, do: 123 + end + end + """ + + expected = source + + assert expected == Sigils.replace_with_spaces(source, "") + end end diff --git a/test/credo/code/strings_test.exs b/test/credo/code/strings_test.exs index c66632395..2e6642ec7 100644 --- a/test/credo/code/strings_test.exs +++ b/test/credo/code/strings_test.exs @@ -124,4 +124,42 @@ defmodule Credo.Code.StringsTest do result = source |> Strings.replace_with_spaces(".") assert expected == result end + + test "it should not modify commented out code" do + source = """ + defmodule Foo do + defmodule Bar do + # @doc \"\"\" + # Reassign a student to a discussion group. + # This will un-assign student from the current discussion group + # \"\"\" + # def assign_group(leader = %User{}, student = %User{}) do + # cond do + # leader.role == :student -> + # {:error, :invalid} + # + # student.role != :student -> + # {:error, :invalid} + # + # true -> + # Repo.transaction(fn -> + # {:ok, _} = unassign_group(student) + # + # %Group{} + # |> Group.changeset(%{}) + # |> put_assoc(:leader, leader) + # |> put_assoc(:student, student) + # |> Repo.insert!() + # end) + # end + # end + def baz, do: 123 + end + end + """ + + expected = source + + assert expected == source |> Strings.replace_with_spaces(".") + end end