diff options
Diffstat (limited to 'spec/frontend/ml/model_registry/routes/models/index/components/model_row_spec.js')
-rw-r--r-- | spec/frontend/ml/model_registry/routes/models/index/components/model_row_spec.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/frontend/ml/model_registry/routes/models/index/components/model_row_spec.js b/spec/frontend/ml/model_registry/routes/models/index/components/model_row_spec.js new file mode 100644 index 00000000000..7600288f560 --- /dev/null +++ b/spec/frontend/ml/model_registry/routes/models/index/components/model_row_spec.js @@ -0,0 +1,42 @@ +import { GlLink } from '@gitlab/ui'; +import { + mockModels, + modelWithoutVersion, +} from 'jest/ml/model_registry/routes/models/index/components/mock_data'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import ModelRow from '~/ml/model_registry/routes/models/index/components/model_row.vue'; + +let wrapper; +const createWrapper = (model = mockModels[0]) => { + wrapper = shallowMountExtended(ModelRow, { propsData: { model } }); +}; + +const findLink = () => wrapper.findComponent(GlLink); +const findMessage = (message) => wrapper.findByText(message); + +describe('ModelRow', () => { + beforeEach(() => { + createWrapper(); + }); + + it('Has a link to the model', () => { + expect(findLink().text()).toBe(mockModels[0].name); + expect(findLink().attributes('href')).toBe(mockModels[0].path); + }); + + it('Shows the latest version and the version count', () => { + expect(findMessage('1.0 · 3 versions').exists()).toBe(true); + }); + + it('Shows the latest version and no version count if it has only 1 version', () => { + createWrapper(mockModels[1]); + + expect(findMessage('1.1 · No other versions').exists()).toBe(true); + }); + + it('Shows no version message if model has no versions', () => { + createWrapper(modelWithoutVersion); + + expect(findMessage('No registered versions').exists()).toBe(true); + }); +}); |