Skip to content

Instantly share code, notes, and snippets.

@pacoguevara
Created September 15, 2015 20:29
Show Gist options
  • Save pacoguevara/ecb941d54ac55a728aab to your computer and use it in GitHub Desktop.
Save pacoguevara/ecb941d54ac55a728aab to your computer and use it in GitHub Desktop.
require 'rails_helper'
RSpec.describe CatEmpresa, :type => :model do
describe "class methods" do
describe ".cat_empresa_array_by_invoices" do
# Aqui crear una empresa y varias facturas con esa empresa
before(:each) do
@factura1 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "5681928685ae18e3b623d1d0f1910512",
uuid: "E8027172-A541-4707-8913-C7528D67FCF3", usuario_id: 21)
@factura2 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "af5acf2d5863fbc141c1c6504d3aefa8",
uuid: "B4B3B941-1B37-4109-9998-340E5FB4C209", usuario_id: 21)
@factura3 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "1d157f38cab96b6c5a5a7ec77d6be0ba",
uuid: "2E89A6C1-9B80-4A5B-9B65-4110F4BB6378", usuario_id: 21)
@invoices = [@factura1, @factura2, @factura3]
@empresa = FactoryGirl.create(:empresa, name: "40 West Restaurant SA de CV",
rfc: "CWG1011107T9")
@categoria1 = FactoryGirl.create(:categoria, nombre: "576000-012-002")
@categoria2 = FactoryGirl.create(:categoria, nombre: "576000-012-003")
@categoria3 = FactoryGirl.create(:categoria, nombre: "576000-012-004")
@cat_empresa1 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria1.id)
@cat_empresa2 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria2.id)
@cat_empresa3 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria3.id)
@concepto1 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto1.id,
cat_empresa_id: @cat_empresa1.id)
@concepto2 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto2.id,
cat_empresa_id: @cat_empresa1.id)
@concepto3 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto3.id,
cat_empresa_id: @cat_empresa1.id)
@concepto4 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto4.id,
cat_empresa_id: @cat_empresa2.id)
@concepto5 = FactoryGirl.create(:concepto, factura_id: @factura3.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto5.id,
cat_empresa_id: @cat_empresa3.id)
#@concepto1 = FactoryGirl.create(:concepto, factura_id: "TEC091214PL6", )
end
context "when there are invoices between 2 companies" do
it "returns an array of cat_empresas ids for concepts" do
cat_empresas_array = CatEmpresa.cat_empresa_array_by_invoices(@empresa, @invoices)
expect(cat_empresas_array.count).to eql 5
end
end
end
describe ".cat_empresa_by_invoices" do
# Aqui crear una empresa y varias facturas con esa empresa
before(:each) do
@factura1 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "5681928685ae18e3b623d1d0f1910512",
uuid: "E8027172-A541-4707-8913-C7528D67FCF3", usuario_id: 21)
@factura2 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "af5acf2d5863fbc141c1c6504d3aefa8",
uuid: "B4B3B941-1B37-4109-9998-340E5FB4C209", usuario_id: 21)
@factura3 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "1d157f38cab96b6c5a5a7ec77d6be0ba",
uuid: "2E89A6C1-9B80-4A5B-9B65-4110F4BB6378", usuario_id: 21)
@invoices = [@factura1, @factura2, @factura3]
@empresa = FactoryGirl.create(:empresa, name: "40 West Restaurant SA de CV",
rfc: "CWG1011107T9")
@categoria1 = FactoryGirl.create(:categoria, nombre: "576000-012-002")
@categoria2 = FactoryGirl.create(:categoria, nombre: "576000-012-003")
@categoria3 = FactoryGirl.create(:categoria, nombre: "576000-012-004")
@cat_empresa1 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria1.id)
@cat_empresa2 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria2.id)
@cat_empresa3 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria3.id)
@concepto1 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto1.id,
cat_empresa_id: @cat_empresa1.id)
@concepto2 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto2.id,
cat_empresa_id: @cat_empresa2.id)
@concepto3 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto3.id,
cat_empresa_id: @cat_empresa1.id)
@concepto4 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto4.id,
cat_empresa_id: @cat_empresa2.id)
@concepto5 = FactoryGirl.create(:concepto, factura_id: @factura3.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto5.id,
cat_empresa_id: @cat_empresa3.id)
end
context "when there are invoices between 2 companies" do
it "returns CatEmpresa instance of the more frequent tag" do
cat_empresa = CatEmpresa.cat_empresa_by_invoices(@empresa, @invoices)
expect(cat_empresa.id).to eql 1
end
end
context "when there aren't invoices between 2 companies" do
it "returns nil because there is not catempresa" do
cat_empresa = CatEmpresa.cat_empresa_by_invoices(@empresa, @facturas = [])
expect(cat_empresa.nil?).to be true
end
end
end
end
end
require 'rails_helper'
RSpec.describe Factura, :type => :model do
describe "insatance methods" do
describe "#add_cat_empresa_to_invoice" do
# Crear una factura y una CatEmpresa
before(:each) do
@factura1 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "5681928685ae18e3b623d1d0f1910512",
uuid: "E8027172-A541-4707-8913-C7528D67FCF3", usuario_id: 21)
@empresa = FactoryGirl.create(:empresa, name: "40 West Restaurant SA de CV",
rfc: "CWG1011107T9")
@categoria1 = FactoryGirl.create(:categoria, nombre: "576000-012-002")
@cat_empresa1 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria1.id)
end
context "when an invoice is tagged" do
it "returns an invoice tagged when there is a cat empresa" do
invoice = @factura1.add_cat_empresa_to_invoice(@cat_empresa1)
expect(invoice.id).to eql @factura1.id
end
it "returns nil when there isn't a cat empresa" do
invoice = @factura1.add_cat_empresa_to_invoice(@cat_empresa = nil)
expect(invoice.nil?).to be true
end
end
end
describe "#etiquetado_automatico" do
before(:each) do
@factura1 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "5681928685ae18e3b623d1d0f1910512",
uuid: "E8027172-A541-4707-8913-C7528D67FCF3", usuario_id: 21)
@factura2 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "af5acf2d5863fbc141c1c6504d3aefa8",
uuid: "B4B3B941-1B37-4109-9998-340E5FB4C209", usuario_id: 21)
@factura3 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "1d157f38cab96b6c5a5a7ec77d6be0ba",
uuid: "2E89A6C1-9B80-4A5B-9B65-4110F4BB6378", usuario_id: 21)
@factura4 = FactoryGirl.create(:factura, rfc_em: "ABA920310QW0",
rfc_re: "CWG1011107T9", md5: "1d157f38cab96b6c5a5a7ec77d6be0b7",
uuid: "2E89A6C1-9B80-4A5B-9B65-4110F4BB6379", usuario_id: 21)
@invoices = [@factura1, @factura2, @factura3]
@empresa = FactoryGirl.create(:empresa, name: "40 West Restaurant SA de CV",
rfc: "CWG1011107T9")
@categoria1 = FactoryGirl.create(:categoria, nombre: "576000-012-002")
@categoria2 = FactoryGirl.create(:categoria, nombre: "576000-012-003")
@categoria3 = FactoryGirl.create(:categoria, nombre: "576000-012-004")
@cat_empresa1 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria1.id)
@cat_empresa2 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria2.id)
@cat_empresa3 = FactoryGirl.create(:cat_empresa, empresa_id: @empresa.id,
categoria_id: @categoria3.id)
@concepto1 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto1.id,
cat_empresa_id: @cat_empresa1.id)
@concepto2 = FactoryGirl.create(:concepto, factura_id: @factura1.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto2.id,
cat_empresa_id: @cat_empresa2.id)
@concepto3 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto3.id,
cat_empresa_id: @cat_empresa1.id)
@concepto4 = FactoryGirl.create(:concepto, factura_id: @factura2.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto4.id,
cat_empresa_id: @cat_empresa2.id)
@concepto5 = FactoryGirl.create(:concepto, factura_id: @factura3.id)
FactoryGirl.create(:cat_empresas_concepto, concepto_id: @concepto5.id,
cat_empresa_id: @cat_empresa3.id)
@concepto6 = FactoryGirl.create(:concepto, factura_id: @factura4.id)
@concepto7 = FactoryGirl.create(:concepto, factura_id: @factura4.id)
end
context "when an invoices is autotagged" do
it "return the invoice tagged" do
invoice = @factura4.etiquetado_automatico
expect(invoice.id).to eql @factura4.id
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment