Skip to content

Commit

Permalink
✅ Refactor tests
Browse files Browse the repository at this point in the history
  • Loading branch information
marouria committed Nov 6, 2024
1 parent e73b802 commit 0faebaf
Showing 1 changed file with 121 additions and 149 deletions.
270 changes: 121 additions & 149 deletions spec/models/restitution/export_positionnement_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,68 @@
described_class.new(partie: partie)
end

let(:situation) { create(:situation_cafe_de_la_place) }
let(:evaluation) { create :evaluation }
let!(:question) { create(:question_qcm, nom_technique: 'LOdi1') }
let!(:partie) { create :partie, evaluation: evaluation, situation: situation }
let(:spreadsheet) { Spreadsheet.open(StringIO.new(response_service.to_xls)) }
let(:worksheet) { spreadsheet.worksheet(0) }
let(:question) { create(:question_qcm, nom_technique: 'LOdi1') }
let(:partie) { create :partie }

describe 'pour un export littératie' do
describe '#to_xls' do
it 'génére un fichier xls avec les entêtes sur chaque colonnes' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)

expect(spreadsheet.worksheets.count).to eq(1)
expect(worksheet.row(0)[0]).to eq('Code Question')
expect(worksheet.row(0)[1]).to eq('Intitulé')
expect(worksheet.row(0)[2]).to eq('Réponse')
expect(worksheet.row(0)[3]).to eq('Score')
expect(worksheet.row(0)[4]).to eq('Score max')
expect(worksheet.row(0)[5]).to eq('Métacompétence')
let(:situation) { create(:situation_cafe_de_la_place) }
let!(:partie) { create :partie, situation: situation }

it 'génére un fichier xls avec les entêtes sur chaque colonnes' do
expect(spreadsheet.worksheets.count).to eq(1)
expect(worksheet.row(0)[0]).to eq('Code Question')
expect(worksheet.row(0)[1]).to eq('Intitulé')
expect(worksheet.row(0)[2]).to eq('Réponse')
expect(worksheet.row(0)[3]).to eq('Score')
expect(worksheet.row(0)[4]).to eq('Score max')
expect(worksheet.row(0)[5]).to eq('Métacompétence')
end

describe 'génére un fichier xls avec les evenements réponses' do
let(:intitule_question2) do
'Donc, c’est une émission sur les livres. Quel est le nom du livre dont on parle ?'
end

before do
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi1',
reponse: 'couverture',
reponseIntitule: nil,
score: 2,
scoreMax: 2,
intitule: 'De quoi s’agit-il ?',
metacompetence: 'lecture' }
create :evenement_reponse,
partie: partie,
donnees: { intitule: intitule_question2,
question: 'LOdi2',
reponse: 'chatMadameCoupin',
reponseIntitule: 'Le chat de Mme Coupin' }
end

describe 'génére un fichier xls avec les evenements réponses' do
let(:intitule_question2) do
'Donc, c’est une émission sur les livres. Quel est le nom du livre dont on parle ?'
end

before do
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi1',
reponse: 'couverture',
reponseIntitule: nil,
score: 2,
scoreMax: 2,
intitule: 'De quoi s’agit-il ?',
metacompetence: 'lecture' }
create :evenement_reponse,
partie: partie,
donnees: { intitule: intitule_question2,
question: 'LOdi2',
reponse: 'chatMadameCoupin',
reponseIntitule: 'Le chat de Mme Coupin' }
end

it 'verifie les détails de la première question' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)
question1 = worksheet.row(1)
expect(question1[0]).to eq('LOdi1')
expect(question1[1]).to eq('De quoi s’agit-il ?')
expect(question1[2]).to eq('couverture')
expect(question1[3]).to eq(2)
expect(question1[4]).to eq(2)
expect(question1[5]).to eq('lecture')
end

it 'verifie les détails de la deuxième question' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)
question2 = worksheet.row(2)
expect(question2[0]).to eq('LOdi2')
expect(question2[3]).to be_nil
expect(question2[4]).to be_nil
expect(question2[1]).to eq(intitule_question2)
expect(question2[2]).to eq('Le chat de Mme Coupin')
expect(question2[3]).to be_nil
expect(question2[4]).to be_nil
expect(question2[5]).to be_nil
end
it 'verifie les détails de la première question' do
ligne = worksheet.row(1)
expect(ligne[0]).to eq('LOdi1')
expect(ligne[1]).to eq('De quoi s’agit-il ?')
expect(ligne[2]).to eq('couverture')
expect(ligne[3]).to eq(2)
expect(ligne[4]).to eq(2)
expect(ligne[5]).to eq('lecture')
end

it 'verifie les détails de la deuxième question' do
ligne = worksheet.row(2)
expect(ligne[0]).to eq('LOdi2')
expect(ligne[3]).to be_nil
expect(ligne[4]).to be_nil
expect(ligne[1]).to eq(intitule_question2)
expect(ligne[2]).to eq('Le chat de Mme Coupin')
expect(ligne[3]).to be_nil
expect(ligne[4]).to be_nil
expect(ligne[5]).to be_nil
end
end
end
Expand All @@ -88,8 +79,8 @@

describe '#nom_du_fichier' do
it "genere le nom du fichier en fonction de l'évaluation" do
code_de_campagne = evaluation.campagne.code.parameterize
nom_de_levaluation = evaluation.nom.parameterize.first(15)
code_de_campagne = partie.evaluation.campagne.code.parameterize
nom_de_levaluation = partie.evaluation.nom.parameterize.first(15)
date = DateTime.current.strftime('%Y%m%d')
nom_du_fichier_attendu = "#{date}-#{nom_de_levaluation}-#{code_de_campagne}.xls"

Expand All @@ -116,93 +107,74 @@
end

describe 'pour un export numératie' do
subject(:response_service) do
described_class.new(partie: partie)
end

let(:situation) { create(:situation_place_du_marche) }
let!(:partie) { create :partie, evaluation: evaluation, situation: situation }
let!(:partie) { create :partie, situation: situation }
let!(:choix) { create(:choix, :mauvais, question_id: question.id, intitule: 'drapeau') }
let!(:choix2) { create(:choix, :bon, question_id: question.id, intitule: 'couverture') }
let!(:choix3) { create(:choix, :mauvais, question_id: question.id, intitule: 'autre') }

describe '#to_xls' do
it 'génére un fichier xls avec les entêtes sur chaque colonnes' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)

expect(spreadsheet.worksheets.count).to eq(1)
expect(worksheet.row(0)[0]).to eq('Code cléa')
expect(worksheet.row(0)[1]).to eq('Item')
expect(worksheet.row(0)[2]).to eq('Méta compétence')
expect(worksheet.row(0)[3]).to eq('Interaction')
expect(worksheet.row(0)[4]).to eq('Intitulé de la question')
expect(worksheet.row(0)[5]).to eq('Réponses possibles')
expect(worksheet.row(0)[6]).to eq('Réponses attendue')
expect(worksheet.row(0)[7]).to eq('Réponse du bénéficiaire')
expect(worksheet.row(0)[8]).to eq('Score attribué')
expect(worksheet.row(0)[9]).to eq('Score possible de la question')
it 'génére un fichier xls avec les entêtes sur chaque colonnes' do
expect(spreadsheet.worksheets.count).to eq(1)
expect(worksheet.row(0)[0]).to eq('Code cléa')
expect(worksheet.row(0)[1]).to eq('Item')
expect(worksheet.row(0)[2]).to eq('Méta compétence')
expect(worksheet.row(0)[3]).to eq('Interaction')
expect(worksheet.row(0)[4]).to eq('Intitulé de la question')
expect(worksheet.row(0)[5]).to eq('Réponses possibles')
expect(worksheet.row(0)[6]).to eq('Réponses attendue')
expect(worksheet.row(0)[7]).to eq('Réponse du bénéficiaire')
expect(worksheet.row(0)[8]).to eq('Score attribué')
expect(worksheet.row(0)[9]).to eq('Score possible de la question')
end

describe 'génére un fichier xls avec les evenements réponses' do
before do
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi1',
reponse: 'drapeau',
reponseIntitule: nil,
score: 0,
scoreMax: 2,
intitule: 'De quoi s’agit-il ?',
metacompetence: 'renseigner_horaires' }
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi2',
score: 1,
scoreMax: 2,
metacompetence: 'renseigner_horaires' }
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi3',
metacompetence: 'lecture_plan' }
end

it 'verifie le pourcentage de réussite' do
ligne = worksheet.row(1)
expect(ligne[0]).to eq('2.3.3 - score: 25%')
end

it 'verifie les détails de la première question' do
ligne = worksheet.row(2)
expect(ligne[0]).to eq('2.3.3')
expect(ligne[1]).to eq('LOdi1')
expect(ligne[2]).to eq('Renseigner horaires')
expect(ligne[3]).to eq('qcm')
expect(ligne[4]).to eq('De quoi s’agit-il ?')
expect(ligne[5]).to eq('drapeau | couverture | autre')
expect(ligne[6]).to eq('couverture')
expect(ligne[7]).to eq('drapeau')
expect(ligne[8]).to eq(0)
expect(ligne[9]).to eq(2)
end

describe 'génére un fichier xls avec les evenements réponses' do
before do
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi1',
reponse: 'drapeau',
reponseIntitule: nil,
score: 0,
scoreMax: 2,
intitule: 'De quoi s’agit-il ?',
metacompetence: 'renseigner_horaires' }
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi2',
score: 1,
scoreMax: 2,
metacompetence: 'renseigner_horaires' }
create :evenement_reponse,
partie: partie,
donnees: { question: 'LOdi3',
metacompetence: 'lecture_plan' }
end

it 'verifie le pourcentage de réussite' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)
ligne = worksheet.row(1)
expect(ligne[0]).to eq('2.3.3 - score: 25%')
end

it 'verifie les détails de la première question' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)
question1 = worksheet.row(2)
expect(question1[0]).to eq('2.3.3')
expect(question1[1]).to eq('LOdi1')
expect(question1[2]).to eq('Renseigner horaires')
expect(question1[3]).to eq('qcm')
expect(question1[4]).to eq('De quoi s’agit-il ?')
expect(question1[5]).to eq('drapeau | couverture | autre')
expect(question1[6]).to eq('couverture')
expect(question1[7]).to eq('drapeau')
expect(question1[8]).to eq(0)
expect(question1[9]).to eq(2)
end

it 'verifie les détails du groupe cléa suivant' do
xls = response_service.to_xls
spreadsheet = Spreadsheet.open(StringIO.new(xls))
worksheet = spreadsheet.worksheet(0)
question2 = worksheet.row(4)
expect(question2[0]).to eq('2.4.1 - score: 0%')
question2 = worksheet.row(5)
expect(question2[0]).to eq('2.4.1')
expect(question2[1]).to eq('LOdi3')
end
it 'verifie les détails du groupe cléa suivant' do
ligne = worksheet.row(4)
expect(ligne[0]).to eq('2.4.1 - score: 0%')
ligne = worksheet.row(5)
expect(ligne[0]).to eq('2.4.1')
expect(ligne[1]).to eq('LOdi3')
end
end
end
Expand Down

0 comments on commit 0faebaf

Please sign in to comment.