Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
MBrandone committed Jul 27, 2017
2 parents 2e8ade0 + 5ba3b0f commit 4e2ca8d
Show file tree
Hide file tree
Showing 13 changed files with 136 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
**/out.log
**/api/.env
**/*.log
**/*.log.*

# IDE
**/.idea
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Pix Changelog

## 1.15.1 (27/07/2017)

- [#478](https://github.com/sgmap/pix/pull/478) [BUGFIX] Mon niveau à l'issue d'un test sans aucun acquis recensé doit être 0 (US-635).

## 1.15.0 (21/07/2017)

- [#467](https://github.com/sgmap/pix/pull/467) [FEATURE] L'utilisateur connecté peut voir son niveau sur chacune des compétences dans sa page connecté (US-623).
Expand Down
7 changes: 5 additions & 2 deletions api/lib/domain/services/scoring-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@ function _add(a, b) {
}

function computeDiagnosis(performanceStats, knowledgeData) {

const firstFiveLevels = [1, 2, 3, 4, 5];
let pixScore = 0;

Expand All @@ -115,7 +114,11 @@ function computeDiagnosis(performanceStats, knowledgeData) {
const nbKnowledgeTags = firstFiveLevels.map(level => knowledgeData.nbKnowledgeTagsByLevel[level]).reduce(_add);

const highestLevel = Math.max(...firstFiveLevels.filter(level => knowledgeData.nbKnowledgeTagsByLevel[level] > 0));
const estimatedLevel = Math.floor(nbAcquiredKnowledgeTags * highestLevel / nbKnowledgeTags);

let estimatedLevel = 0;
if (nbAcquiredKnowledgeTags > 0) {
estimatedLevel = Math.floor(nbAcquiredKnowledgeTags * highestLevel / nbKnowledgeTags);
}

return {
estimatedLevel,
Expand Down
2 changes: 1 addition & 1 deletion api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pix-api",
"version": "1.15.0",
"version": "1.15.1",
"description": "Plateforme d'évaluation et de certification des compétences numériques à l'usage de tous les citoyens francophones",
"main": "server.js",
"author": "SGMAP",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,26 @@ describe('Unit | Domain | Service | scoring', function() {
});

});

describe('when there is not challenge tags', () => {
it('should return 0 as the estimatedLevel', () => {
// Given
const performanceStats = {
nbAcquiredKnowledgeTagsByLevel: { '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0 }
};
const knowledgeData = {
challengesById: {},
knowledgeTagSet: {},
nbKnowledgeTagsByLevel: { '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0 }
};

// When
const result = scoring.computeDiagnosis(performanceStats, knowledgeData);

// Then
expect(result.estimatedLevel).to.equal(0);
});
});
});
});
});
7 changes: 6 additions & 1 deletion live/app/components/navbar-header.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ import Ember from 'ember';

export default Ember.Component.extend({

classNames: ['navbar-header']
classNames: ['navbar-header'],
user: null,

isUserLogged: Ember.computed('user', function() {
const user = this.get('user');
return Ember.isPresent(user);
})
});
18 changes: 17 additions & 1 deletion live/app/styles/components/_navbar-header.scss
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@

/* Links
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.navbar-header-links {
display: none;

Expand All @@ -75,6 +74,10 @@
}
}

.navbar-header-links--user-logged {
padding: 0;
}

.navbar-header-links__list {
padding: 0;
margin: 0;
Expand Down Expand Up @@ -105,3 +108,16 @@
}
}

.logged-user-details {
margin-top: 0px;
}

.logged-user-name {
font-family: $font-lato;
font-size: 14px;
font-weight: $font-bold;
letter-spacing: 0.5px;
text-align: right;
color: $charcoal-grey;
text-transform: capitalize;
}
29 changes: 20 additions & 9 deletions live/app/templates/components/navbar-header.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,26 @@
</div>

<!-- Links (right) -->
<div class="navbar-header-links">
<ul class="navbar-header-links__list">
<li class="navbar-header-links__item">
{{#link-to 'project' class="navbar-header-links__link navbar-header-links__link--project"}}Projet{{/link-to}}
</li>
<li class="navbar-header-links__item">
{{#link-to 'competences' class="navbar-header-links__link navbar-header-links__link--competences"}}Compétences{{/link-to}}
</li>
</ul>
<div class="navbar-header-right">
<div class="navbar-header-links {{if isUserLogged 'navbar-header-links--user-logged' ''}}">
<ul class="navbar-header-links__list">
<li class="navbar-header-links__item">
{{#link-to 'project' class="navbar-header-links__link navbar-header-links__link--project"}}Projet{{/link-to}}
</li>
<li class="navbar-header-links__item">
{{#link-to 'competences' class="navbar-header-links__link navbar-header-links__link--competences"}}
Compétences{{/link-to}}
</li>
</ul>
</div>

{{#if isUserLogged}}
<div class="logged-user-details">
<div class="logged-user-name">
{{concat user.firstName ' ' user.lastName}}
</div>
</div>
{{/if}}
</div>

</div>
5 changes: 1 addition & 4 deletions live/app/templates/compte.hbs
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
<div class="compte-page">

{{navbar-header class="navbar-header--white"}}
<h1>Bienvenue</h1>

<a href="/logout">Se déconnecter</a>
{{navbar-header class="navbar-header--white" user=model}}

{{profile-panel competences=model.competences totalPixScore=model.totalPixScore}}
</div>
Expand Down
2 changes: 1 addition & 1 deletion live/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pix-live",
"version": "1.15.0",
"version": "1.15.1",
"description": "Plateforme d'évaluation et de certification des compétences numériques à l'usage de tous les citoyens francophones.",
"license": "AGPL-3.0",
"author": "SGMAP",
Expand Down
33 changes: 32 additions & 1 deletion live/tests/integration/components/navbar-header-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { expect } from 'chai';
import { describe, it, beforeEach } from 'mocha';
import { beforeEach, describe, it } from 'mocha';
import { setupComponentTest } from 'ember-mocha';
import hbs from 'htmlbars-inline-precompile';

Expand Down Expand Up @@ -28,6 +28,37 @@ describe('Integration | Component | navbar-header', function() {

it('should display a link to "referential" page', function() {
expect(this.$('.navbar-header-links__link--competences')).to.have.lengthOf(1);
expect(this.$('.navbar-header-links--user-logged')).to.have.length(0);
});

describe('Display user details', function() {

describe('When user is logged', function() {

it('should display user information, when user is logged', function() {
// given
this.set('user', { firstName: 'FHI', lastName: '4EVER' });
// when
this.render(hbs`{{navbar-header user=user}}`);
// then
expect(this.$('.logged-user-details')).to.have.length(1);
expect(this.$('.logged-user-name').text().trim()).to.be.equal('FHI 4EVER');
});

it('should move navbar to top', function() {
// given
this.set('user', { firstName: 'FHI', lastName: '4EVER' });
// when
this.render(hbs`{{navbar-header user=user}}`);
// then
expect(this.$('.navbar-header-links--user-logged')).to.have.length(1);
});
});

it('should not display user information, for unlogged', function() {
// when
this.render(hbs`{{navbar-header}}`);
expect(this.$('.logged-user-details')).to.have.length(0);
});
});
});
27 changes: 27 additions & 0 deletions live/tests/unit/components/navbar-header-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { expect } from 'chai';
import { describe, it } from 'mocha';
import { setupTest } from 'ember-mocha';

describe('Unit | Component | Navar Header Component', function() {
setupTest('component:navbar-header', {});

describe('#isUserLogged', function() {
[
{ given: '', expected: false },
{ given: ' ', expected: false },
{ given: null, expected: false },
{ given: undefined, expected: false },
{ given: { firstName: 'FHI' }, expected: true }
].forEach(({ given, expected }) => {
it(`should return ${expected}, when "${given}" provided`, function() {
// given
const component = this.subject();
// when
component.set('user', given);
// then
expect(component.get('isUserLogged')).to.equal(expected);
});

});
});
});
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pix",
"version": "1.15.0",
"version": "1.15.1",
"description": "Plateforme d'évaluation et de certification des compétences numériques des citoyens francophones.",
"author": "Team PIX",
"license": "AGPL-3.0",
Expand Down

0 comments on commit 4e2ca8d

Please sign in to comment.