import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Platform,
ScrollView,
Image,
} from 'react-native';
import Assert from './assert.js'
export default class Reporter extends Component {
render() {
return (
{this.renderTests()}
)
}
renderTests() {
return this.props.context.tests.map((t, i) => {
let pass = true
let foundAssertions = false
Array.isArray(t.result) && t.result.forEach((r) => {
if(r.type.name === 'Assert') {
foundAssertions = true
pass = pass && (r.props.actual === r.props.expect)
}
})
t.status = foundAssertions ? (pass ? 'pass' : 'fail') : t.status
return (
{t.desc}
{t.status}
{t.result}
)
})
}
getBadge(status) {
if(status === 'running')
return styles.badgeRunning
else if(status === 'pass')
return styles.badgePass
else
return styles.badgeFail
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop : 40,
},
badge : {
margin : 16,
padding : 4,
borderRadius : 4,
borderWidth : 2,
},
badgePass: {
borderColor : '#00a825',
color : '#00a825'
},
badgeRunning: {
borderColor : '#e3c423',
color : '#e3c423'
},
badgeFail: {
borderColor : '#ff0d0d',
color : '#ff0d0d'
}
});