LuanDantas
6/1/2018 - 12:07 AM

Testando todo o fluxo

Vamos testar todo o fluxo da API que criamos. O rails conta com um arquivo chamado seeds.rb, onde podemos passar informações para que sejam inseridas no banco de dados.

Testando todo o fluxo

Primeiro, vamos criar alguns dados fakes:

No db/seeds.rb coloque:

# Categories

rot = Category.create(name: 'Ruby on Rails')
talks = Category.create(name: 'Talks')
testes = Category.create(name: 'Testes')
outros = Category.create(name: 'Outros')

# Featured Movie

movie1 = Movie.create(title: "Ruby on Rails api do zero ao deplou", 
description: "Aprenda a criar uma API completa com Ruby on Rails.", thumbail_key: "rails-api1.png",
thumbnail_cover_key: "rails-api-cover.png", video_key: "BSFS_inscricoes_abertas.mp4", 
highlighted: true, category: ror, featured_thumbnail_key: "rails-api-featured.png")

# Users

user1 = User.create(name: 'example', email: 'example@example.com', password: '123456', 
password_confirmation: '123456')

user2 = User.create(name: 'example2', email: 'example2@example.com', password: '123456', 
password_confirmation: '123456')

user3 = User.create(name: 'example3', email: 'example3@example.com', password: '123456', 
password_confirmation: '123456')

user4 = User.create(name: 'example4', email: 'example4@example.com', password: '123456', 
password_confirmation: '123456')

user5 = User.create(name: 'example5', email: 'example5@example.com', password: '123456', 
password_confirmation: '123456')

# Movies sem série

movie2 = Movie.create(title: "Dominando o Docker", description: "O Docker é uma plataforma (aberta)
que permite que você crie, rode e faça deploy de containers. De maneira simples, um container é o 
empacotamento da sua aplicação mais as dependências dela.", thumbnail_key: "docker.png", 
thumbnail_cover_key: "docker-cover.png", video_key: "docker.mp4", category: outros)

movie3 = Movie.create(title: "Dominando Atom [+12 pacote incríveis]", 
description: "O Atom é um editor bastante completo, cheio de temas e pacotes para facilitar a sua
vida como programador.", thumbnail_key: "atom.png", thumbnail_cover_key: "atom-cover.png", 
video_key: "atom.mp4", category: outros)

movie4 = Movie.create(title: "Criando um e-commerce com Spree em 15 minutos!", 
description: "O Spree é uma plataforma de e-commerce criada usando Ruby on Rails e vem evoluindo
constantemente. Ela possui diversas extensões que ajudam na customização do e-commerce gerado e 
possui uma grande versatilidade na hora das customizações.", thumbnail_key: "spree.png", 
thumbnail_cover_key: "spree-cover.png", video_key: "spree.mp4", category: outros)

# Séries

vscode = Serie.create(title: "Visual Studio Code", description: "Uma série completa para você 
dominar um dos mais importantes editores de código", thumbnail_key: "vscode1.png", 
thumbnail_cover_key: "vscode-serie-cover.png", last_watched_episode_id: 1, category: outros)

movie5 = Serie.create(title: "Dominando o Visual Studio Code - Parte 1", description: "O Visual 
Studio Code é um editor código Open Source completo que possui integração nativa com o Git, milhares
de extensões, é rápido e permite que você realize o debug facilmente do seu código.", 
thumbnail_key: "vscode1.png", thumbnail_cover_key: "vscode1-cover.png", video_key: "vscode1.mp4",
serie: vscode, episode_number: 1)

movie6 = Serie.create(title: "Dominando o Visual Studio Code - Parte 2", description: "O Visual 
Studio Code é um editor código Open Source completo que possui integração nativa com o Git, milhares
de extensões, é rápido e permite que você realize o debug facilmente do seu código.", 
thumbnail_key: "vscode2.png", thumbnail_cover_key: "vscode2-cover.png", video_key: "vscode2.mp4",
serie: vscode, episode_number: 2)

movie7 = Serie.create(title: "Dominando o Visual Studio Code - Parte 3", description: "O Visual 
Studio Code é um editor código Open Source completo que possui integração nativa com o Git, milhares
de extensões, é rápido e permite que você realize o debug facilmente do seu código.", 
thumbnail_key: "vscode3.png", thumbnail_cover_key: "vscode3-cover.png", video_key: "vscode3.mp4",
serie: vscode, episode_number: 3)

# Keep Watching

Player.create(start_date: Time.now, user: user1, elapsed_time: '14', movie: movie1)
Player.create(start_date: Time.now, user: user1, elapsed_time: '14', movie: movie2)
Player.create(start_date: Time.now, user: user1, elapsed_time: '14', movie: movie3)
Player.create(start_date: Time.now, user: user1, elapsed_time: '14', movie: movie4)
Player.create(start_date: Time.now, user: user1, elapsed_time: '14', movie: movie5)

# Reviews

Review.create(rating: 3, description: "I have always depended on the kindness of strangers.",
reviewable: movie2, user: user1)

Review.create(rating: 2, description: "Help me, Obi-Wan Kenobi. You're my only hope.",
reviewable: movie2, user: user2)

Review.create(rating: 5, description: "Every time a bell rings, an angel gets his wings.",
reviewable: movie2, user: user3)

Review.create(rating: 3, description: "Magic Mirror on the wall, who is the fairest one of all?",
reviewable: movie2, user: user4)

Review.create(rating: 5, description: "Just when I thought I was out, they pull me back in.",
reviewable: movie2, user: user5)

# Favorites

Favorite.create(favoritable: Movie.all[0], user: user1)
Favorite.create(favoritable: Movie.all[1], user: user1)
Favorite.create(favoritable: Movie.all[2], user: user1)
Favorite.create(favoritable: Movie.all[3], user: user1)
Favorite.create(favoritable: Movie.all[4], user: user1)

Agora rode no console:

rails db:seed