|
1 | 1 | require 'test_helper' |
2 | 2 |
|
3 | 3 | class FolderTest < ActiveSupport::TestCase |
4 | | - # test "the truth" do |
5 | | - # assert true |
6 | | - # end |
| 4 | + def setup |
| 5 | + @user = user(:starter) |
| 6 | + @parent_folder = Folder.create!(title: 'Parent Folder', user: @user) |
| 7 | + @folder = Folder.create!(title: 'Test Folder', user: @user, parent_folder: @parent_folder) |
| 8 | + end |
| 9 | + |
| 10 | + test "should be valid" do |
| 11 | + assert @folder.valid? |
| 12 | + end |
| 13 | + |
| 14 | + test "should require a user" do |
| 15 | + @folder.user = nil |
| 16 | + assert_not @folder.valid? |
| 17 | + end |
| 18 | + |
| 19 | + test "should have many documents" do |
| 20 | + assert_respond_to @folder, :documents |
| 21 | + assert_kind_of ActiveRecord::Associations::CollectionProxy, @folder.documents |
| 22 | + end |
| 23 | + |
| 24 | + test "should belong to parent folder" do |
| 25 | + assert_respond_to @folder, :parent_folder |
| 26 | + assert_equal @parent_folder, @folder.parent_folder |
| 27 | + end |
| 28 | + |
| 29 | + test "should belong to user" do |
| 30 | + assert_respond_to @folder, :user |
| 31 | + assert_equal @user, @folder.user |
| 32 | + end |
| 33 | + |
| 34 | + test "child_folders should return folders with same user and parent" do |
| 35 | + child_folder = Folder.create!(title: 'Child Folder', user: @user, parent_folder: @folder) |
| 36 | + assert_includes @folder.child_folders, child_folder |
| 37 | + end |
| 38 | + |
| 39 | + test "class methods should return correct values" do |
| 40 | + assert_equal 'lighten-1 teal', Folder.color |
| 41 | + assert_equal 'text-lighten-1 teal-text', Folder.text_color |
| 42 | + assert_equal 'folder', Folder.icon |
| 43 | + end |
| 44 | + |
| 45 | + test "to_param should include id and slugged title" do |
| 46 | + expected_param = "#{@folder.id}-#{PageTagService.slug_for(@folder.title)}" |
| 47 | + assert_equal expected_param, @folder.to_param |
| 48 | + end |
7 | 49 | end |
0 commit comments