Skip to content

Commit

Permalink
Fix skills annex refresh issue
Browse files Browse the repository at this point in the history
Skills annex would not refresh properly (reset _then_ append new sections)
  • Loading branch information
hoshin committed Jun 24, 2017
1 parent c72bbcb commit 92437e4
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 5 deletions.
5 changes: 3 additions & 2 deletions js/AnnexManager.js
Expand Up @@ -13,6 +13,7 @@ class AnnexManager {
document.getElementById('annexTitle').innerText = annexData.title;
if(annexData.skills){
document.getElementById('skillsTitle').innerText = annexData.skills.title;
document.getElementById('skillsContent').innerHTML = '';
const skillSectionsToRender = Object.keys(annexData.skills).filter(skill => skill !== 'title');
skillSectionsToRender.forEach((skillSectionToRender, index) => {
this.renderAnnexSkillsSection(resumeData, skillSectionToRender);
Expand All @@ -30,7 +31,7 @@ class AnnexManager {
}

addSkillsDivider(document) {
const skillsSectionDOM = document.getElementById('skills');
const skillsSectionDOM = document.getElementById('skillsContent');
const separator = document.createElement('div');
separator.setAttribute('class', 'divider');
skillsSectionDOM.append(separator);
Expand All @@ -52,7 +53,7 @@ class AnnexManager {
const {skillSectionDOM, skillsSectionListDOM} = this.createDOMSkillSection(skillSectionName, resumeData);

this.appendItemsToDOMList(resumeData.annex.skills[skillSectionName].list, skillsSectionListDOM);
document.getElementById('skills').append(skillSectionDOM)
document.getElementById('skillsContent').append(skillSectionDOM)
}

createDOMSkillSection(skillSectionName, resumeData) {
Expand Down
2 changes: 1 addition & 1 deletion js/rezume.js
Expand Up @@ -36,7 +36,7 @@ class Rezume {
const selectorValue = currentDocument.getElementById('cv_selector').value;
this.assignments = this.assignmentsList[selectorValue];
this.assignmentsManager.updateAssignmentsData(this.assignments);
this.headersManager.updateHeadersData(this.assignments.expectedHeaders);
//this.headersManager.updateHeadersData(this.assignments.expectedHeaders);
this.resumeData = _.merge({}, this._originalResumeData, this.assignmentsList[selectorValue].resumeData);
this.headersManager.updateHeadersData(this.assignments.expectedHeaders, this.resumeData);
this.render(currentDocument);
Expand Down
47 changes: 45 additions & 2 deletions test/AnnexManagerSpec.js
Expand Up @@ -121,7 +121,7 @@ describe('AnnexManager', () => {
skillSectionDOM: {bar: 'baz'}
});
const skillsAppendStub = sinon.stub();
documentMock.expects('getElementById').withArgs('skills').once().returns({append: skillsAppendStub});
documentMock.expects('getElementById').withArgs('skillsContent').once().returns({append: skillsAppendStub});

getDocumentStub.returns(document);
// action
Expand All @@ -146,6 +146,38 @@ describe('AnnexManager', () => {
});

describe('renderAnnex', () => {

it('should reset the skills annex name & contents', () => {
// setup
const skillsTitle = {innerText: 'some text'}, skillsContent = {innerHTML: 'some HTML'};
const document = {
getElementById: () => {
return null;
}
};
const documentMock = sinon.mock(document);
documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns(skillsTitle);
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns(skillsContent);
getDocumentStub.returns(document);
annexManager.renderAnnexBigSection = sinon.spy();
annexManager.renderAnnexSkillsSection = sinon.spy();

// action
annexManager.renderAnnex({
annex: {
title: 'foo',
skills: {
title:'bar'
}
}
});
// assert
documentMock.verify();
assert.equal(skillsTitle.innerText, 'bar');
assert.equal(skillsContent.innerHTML, '');
});

it('should trigger the rendering of all annex sections', () => {
//setup
const document = {
Expand All @@ -157,6 +189,7 @@ describe('AnnexManager', () => {

documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});
sinon.stub(annexManager, 'addSkillsDivider');
annexManager.renderAnnexBigSection = sinon.spy();
annexManager.renderAnnexSkillsSection = sinon.spy();
Expand Down Expand Up @@ -191,6 +224,7 @@ describe('AnnexManager', () => {

documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

annexManager.renderAnnexBigSection = sinon.spy();
annexManager.renderAnnexSkillsSection = sinon.spy();
Expand All @@ -212,6 +246,8 @@ describe('AnnexManager', () => {

documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

sinon.stub(annexManager, 'addSkillsDivider');
sinon.stub(annexManager, 'renderAnnexSkillsSection');

Expand All @@ -238,6 +274,8 @@ describe('AnnexManager', () => {

documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

sinon.stub(annexManager, 'addSkillsDivider');
sinon.stub(annexManager, 'renderAnnexSkillsSection');

Expand All @@ -246,7 +284,7 @@ describe('AnnexManager', () => {
annexManager.renderAnnex({
annex: {
title: 'foo',
skills: {foo: {}, bar:{}}
skills: {foo: {}, bar: {}}
}
});
//assert
Expand All @@ -264,6 +302,8 @@ describe('AnnexManager', () => {

documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns({});
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

sinon.stub(annexManager, 'addSkillsDivider');
sinon.stub(annexManager, 'renderAnnexSkillsSection');

Expand Down Expand Up @@ -316,6 +356,7 @@ describe('AnnexManager', () => {
const annexTitle = {}, annexSkillsTitle = {};
documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns(annexTitle);
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns(annexSkillsTitle);
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

annexManager.renderAnnexBigSection = sinon.spy();
annexManager.renderAnnexSkillsSection = sinon.spy();
Expand Down Expand Up @@ -452,6 +493,8 @@ describe('AnnexManager', () => {
const annexTitle = {innerText: 'title'}, skillsTitle = {innerText: 'skills'};
documentMock.expects('getElementById').withExactArgs('annexTitle').once().returns(annexTitle);
documentMock.expects('getElementById').withExactArgs('skillsTitle').once().returns(skillsTitle);
documentMock.expects('getElementById').withExactArgs('skillsContent').once().returns({});

getDocumentStub.returns(document);

// action
Expand Down

0 comments on commit 92437e4

Please sign in to comment.